当我访问Internet Explorer(http://mydomain.com)的主页的非SSL版本时,提交表单,没有任何反应.在Webkit控制台中,我收到一个有用的错误,说明Access-Control-Allow-Origin不允许Origin http://mydomain.com.
然而,在Firefox 13中,请求明确地提交& a返回200 OK,尽管响应体是空白的.此外,服务器端操作(发送SMS)实际上是由Firefox请求而不是其他浏览器触发的.
我一直认为同源政策甚至拒绝发送请求,但是也许是浏览器从不允许的响应中接收数据?
任何人都知道这是Mozilla的实现(甚至是监督)的有意义的区别吗?
解决方法
但是对于目前的XHR (Level 2),当支持CORS(由服务器和客户机!)支持跨原始请求时,跨源请求可以是
> simple cross-orgin request,如果
>请求方法是GET,HEAD或POST,以及
>请求头字段之一不是接受,接受语言,内容语言或内容类型,而是
>没有设置预检标志
要么
> cross-origin request that requires a preflight,否则.
对于简单的跨原始请求,允许浏览器发送请求.但是当接收到响应时,它需要为check whether the server allows to share the resource.这是Access-Control-Allow-Origin头域和其他Access-Control- *响应头字段被检查的地方.只有通过此检查,浏览器才允许脚本读取响应.
对于其他跨原始请求,需要使用预检来与服务器协商在实际请求中允许发送哪些信息.这个预检要求基本上是一个OPTIONS请求,告诉服务器实际请求将包含什么(请求方法和头字段).那么服务器可以决定是否允许这样的请求.
在您的情况下,观察到的行为可能有多个原因.我猜你的send_sms脚本不是support the server side part for CORS.