cross domain ajax



在我阅读了这篇文章后,我了解到,为了允许跨域ajax调用,我必须将服务器响应设置为Access Control allow Origin:*(出于测试目的而公开),这是我的服务器代码,Python 中的Google AppEngine

self.response.headers.add_header('Access - Control - Allow - Origin:*')
self.response.headers.add_header('content-type', 'application/json', charset = 'utf-8')
self.response.out.write(simplejson.dumps(Jsonobject))

我不知道这是否正确。我的Ajax调用

xhr.open("get", "http://example.com", true);
xhr.setRequestHeader("Access-Control-Allow-Origin","example");

我总是犯这个错误访问控制允许原点不允许原点为null如何配置?非常感谢

  1. 您需要使用Access-Control-Allow-Origin,而不是Access - Control - Allow - Origin
  2. 我不确定self.response.headers.add_header(str)是否有效,也许是self.response.headers.add_header(key, name)
  3. *域不起作用(至少不适用于所有浏览器)。你必须使用确切的域名、全名和协议。类似http://example.com
  4. 您需要Origin头,用于ajax调用。我不知道如何配置原始xhr,但我猜它是由浏览器自己制作的,您不能修改这个值。无论如何,你的域不是example
  5. 别忘了,它不适用于大多数IE和Opera浏览器

也许这些代码行可以解决您的问题。

你可以做一件事,只需要设置访问控制允许起源&访问控制允许CustomeHeaders中的Headers访问web服务web.config文件。

 <add name="Access-Control-Allow-Origin" value="*" />
 <add name="Access-Control-Allow-Headers" value="Content-Type" />

如果你想只允许特定的域,你可以用域的特定值来实现,而不是*value

相关内容

  • 没有找到相关文章

最新更新