我正在进行ajax调用以检查用户名可用性。要调用的url是在js文件中硬编码的。例如http://abc.com/users/check_availability。
现在当我从http://abc.com拨打ajax电话时,它工作正常,但如果我从http://www.abc.com拨打电话,则会出现跨域错误。
XMLHttpRequest无法加载http://abc.com/users/check_availability?username=sd。 Access-Control-Allow-Origin不允许原点http://www.abc.com。
我如何解决这个问题? jsonp是唯一的方法吗?
答案 0 :(得分:1)
您是否尝试在服务返回数据时设置备用HTTP标头值:
Access-Control-Allow-Origin:*
Access-Control-Allow-Headers:"Content-Type, X-Requested-With, X-Auth-Token"
在尝试对不同子域下的服务进行REST调用时,这对我们有用。
您不必进行Access-Control-Allow-Origin:*您可能更具限制性。但我们试过这只是为了检查它是否会起作用。
只是为了澄清 - 我们仍然使用json而不是jsonp