XMLHttpRequest;跨域请求只支持协议方案:http, data, chrome, chrome-extens

XMLHttpRequest; Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource

本文关键字:http data chrome-extens chrome 方案 协议 请求 支持 XMLHttpRequest      更新时间:2023-09-26

当我尝试做一个ajax调用时,我得到了chrome下面的错误。

XMLHttpRequest无法加载javascript:;跨域请求包括仅支持协议方案:http, data, 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。默认情况下,浏览器将不允许来自file: 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/!主题/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);
    }
});