php – CORS预检请求返回“403 Forbidden”;后续请求然后仅在Chrome中发送

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – CORS预检请求返回“403 Forbidden”;后续请求然后仅在Chrome中发送脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
this question使用pluploader失败后,我现在正在尝试 FineUploader.

在阅读了CORS之后,我在IIS6服务器上实现了各种标头.

似乎发生的事情是我的脚本触发了第一个(预检)授权请求,该请求失败,但Chrome允许第二个(标准)请求无论如何发送 – Firefox没有.我认为这实际上是代表Chrome的一个错误,但至少它让我能够确定我的脚本可能正常工作.

这是Chrome和FF中的第一个(预检)请求:

OPTIONS /frog/LOTS/upload/PHP.PHP HTTP/1.1
Host: staff.curriculum.local
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:14.0) Gecko/20100101 Firefox/14.0.1
Accept: text/htML,application/xhtml+XMl,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Connection: keep-alive
Origin: http://frogserver.curriculum.local
Access-Control-Request-Method: POST
Access-Control-Request-Headers: cache-control,x-requested-wITh
PRagma: no-cache
Cache-Control: no-cache

Access-Control …标头是我添加到IIS的标头.

以下是我的回复标题

HTTP/1.1 403 Forbidden
Content-Length: 1758
Content-tyPE: text/html
Server: Microsoft-iIS/6.0
x-powered-by: ASP.NET
Access-Control-Allow-Origin: http://frogserver.curriculum.local
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Origin,X-Requested-With,Content-Type,Accept,Cache-Control
Access-Control-Allow-Methods: OPTIONS,GET,POST
Access-Control-Expose-Headers: Origin,X-Requested-With
Date: Mon,22 Apr 2013 15:19:20 GMT

我试图比较两个并排,但我找不到任何丢失的标题,这将导致预检请求返回403 Forbidden错误.

我没有包含我的PHP代码,因为它是很多代码.可以说它在Chrome中运行并且文件已正确上传,因此脚本应该是正确的.唯一可能值得一提的是我有一个标题(“Content-Type:text / plain”);在我的脚本开头.将其更改为text / html对Chrome或FireFox没有任何影响.

JavaScript很简单

$('#jquery-wrapped-fine-uploader').fineUploader({
    request: {
        endpoint: 'http://staff.curriculum.local/frog/LOTS/upload/PHP.PHP'
    },cors: {
        expected: true,//all requests are expected to be cross-domain requests
        sendCredentials: true //if you want cookies to be sent along with the request
    }
});

有人可以帮忙吗?我今天在这个问题上花费了8个小时,而且我是><接近撕开我自己的脸.... !! 提前致谢,

解决方法

正如我的评论中提到的,这似乎是您的服务器的问题.出于某种原因,它拒绝了初始的OPTIONS请求.您需要查看服务器日志,以了解服务器使用403响应此请求的原因.

用户代理发送此初始OPTIONS(飞行前)请求. Fine Uploader不直接发送此请求,用户代理发送它以符合the CORS spec.如果您对CORS有特定问题,可以查看my blog post关于Fine Uploader如何处理CORS,或/并且您可以阅读this excellent MDN article on CORS.

脚本宝典总结

以上是脚本宝典为你收集整理的php – CORS预检请求返回“403 Forbidden”;后续请求然后仅在Chrome中发送全部内容,希望文章能够帮你解决php – CORS预检请求返回“403 Forbidden”;后续请求然后仅在Chrome中发送所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。