2017-01-23 83 views
0

我的Ajax请求是这样的:jQuery的AJAX的网址无效

$.ajax({ 
    url: self.opts.url.replace('//www.', '//'), 
    type: 'POST', 
    ... 
}); 

我把那.replace只是要确定。因为我在opts.url中的网址是"http://website.com/admin/upload-image/123"。但我无法上传图像,因为我在控制台中出现错误:XMLHttpRequest cannot load http://www.website.com/. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://website.com' is therefore not allowed access.

我在调试模式下仔细检查了URL,它总是没有www.,但jQuery似乎总是添加它。这对我来说根本没有意义。

也是我从jQuery的error功能得到:

jqXHR: Object (filled statusText with "error") 
textStatus: "error" 
errorThrown: "" 
+1

检查浏览器开发工具网络实际要求。最有可能被在终点重定向,而不是CORS启用 – charlietfl

回答

1

正如你可以在错误信息中看到,它说:

的XMLHttpRequest无法加载www.website.com。请求的资源上没有“Access-Control-Allow-Origin”标题。 Origin'www.website.com'因此不被允许访问。

您必须在www.website.com网页设置访问控制允许来源头。在PHP,这是通过这样来完成:

标题(“访问控制允许来源:http://yourwebsiteThatNeedsAccess”);

+1

有更多地参与CORS不是简单的一个头 – charlietfl

+0

是啊,但为什么jQuery的替换'www.'网址是什么?那么这在技术上是不正确的。 – debute