4
经典“原因...不被访问控制允许来源”问题。两台机器为同一网站提供内容。当机器A通过jquery执行$('#main').load('link_to_resource_on_B')
时,机器B用mod_python提供内容,并添加Access-Control-Allow-Origin: *
标题。但由于某种原因,这仍然不起作用。我在Chrome,Safari和Internet Explorer上测试了这一点。我通过命令行来检查响应头,看起来Access-Control-Allow-Origin: *
已成功地从B头看到。我可能会错过什么?访问控制允许来源:*不工作?
$ telnet localhost 80
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
GET /tests/python/test/env HTTP/1.1
host: 10.0.1.10
HTTP/1.1 200 OK
Date: Mon, 27 Feb 2012 02:05:33 GMT
Server: Apache/2.2.20 (Ubuntu)
Access-Control-Allow-Origin: *
Vary: Accept-Encoding
Transfer-Encoding: chunked
Content-Type: text/html
是否有客户端设置的任何自定义标头?自定义标头(或非GET HTTP方法)可能触发预检请求,这需要额外的处理。 – monsur 2012-02-27 17:36:36
感谢您的提示,@monsur。你是对的,这是OPTION标题,并没有像处理它那样处理。一些研究也告诉我,我的jquery太旧了。较新的jQuery(自1.5.2开始)故意避免使用客户头。所以归结起来,我升级了我的jquery,而我的头痛消失了。 对于那些遭受同样症状的人来说,这个链接为我提供了启蒙的后半部分。 [http://remysharp.com/2011/04/21/getting-cors-working/](http://remysharp.com/2011/04/21/getting-cors-working/) – user1170717 2012-02-28 07:19:39
@ josh3736,谢谢帮助我格式化我的第一篇文章。那是我的第一篇文章。下一次会知道该怎么做。 – user1170717 2012-02-28 07:26:12