XMLHttpRequest的; 交叉源请求仅支持协议方案:http,数据,chrome,chrome-extension,https,chrome-extension-resource

当我尝试进行ajax调用时,我在下面的chrome上得到了错误。

XMLHttpRequest无法加载javascript:;. 交叉源请求仅支持协议方案:http,数据,chrome,chrome-extension,https,chrome-extension-resource。

这是代码:

$.ajax({ type: "POST", data: {pvalue : pid}, cache: false, url: "xxx.in/yy/ajax.php", success: function(data) { $modal.find('.edit-content').html(data); } 

对该特定错误消息的所有研究表明主机网页未通过http:// URL加载,并且可能是文件:URL。 默认情况下,浏览器不允许来自文件:URL的跨源请求。

如果要使用ajax请求,则需要通过Web服务器加载网页,而不是通过文件系统加载。

以下是有关该特定错误的一些其他问题和答案,这些错误都指向用于加载页面的错误类型的URL。

“只有HTTP支持交叉原始请求。” 加载本地文件时出错

React.js:教程中的示例不起作用

交叉源请求仅支持HTTP,但它不是跨域的

http://answers.playcanvas.com/questions/833/cannot-load-model-due-to-cross-origin-request-being-blocked

https://groups.google.com/forum/#!topic/tincr-for-chrome-devtools/nA9k2qh7F-g

如果您要访问其他域中的数据,则必须覆盖Chrome的Same-origin Policy 。 为此你必须指定dataType: 'jsonp'

 $.ajax({ type: "POST", dataType: 'jsonp', data: {pvalue : pid}, cache: false, url: "xxx.in/yy/ajax.php", success: function(data) { $modal.find('.edit-content').html(data); } }); 

如果您的服务器中的文件ajax.php (您现在正在使用的那个),您只需在url部分指定文件名(如下所示)。

 $.ajax({ type: "POST", data: {pvalue : pid}, cache: false, url: "ajax.php", success: function(data) { $modal.find('.edit-content').html(data); } });