XMLHttpRequest; 跨源请求仅支持协议方案:http、data、chrome、chrome-extension、https、chrome-extension-resource

IT技术 javascript php jquery ajax google-chrome
2021-03-02 21:39:20

当我尝试进行 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);
    }
2个回答

对该特定错误消息的所有研究表明,主机网页不是通过 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/#!topic/tincr-for-chrome-devtools/nA9k2qh7F-g

为表现出不应有的耐心点赞!
2021-04-16 21:39:20
是的,先生,我试过大部分
2021-05-03 21:39:20
@nirvanaswap - 请不要将其他人的问题纳入您的情况。如果您在特定情况下需要帮助,请写下您自己的问题并准确描述您要尝试做什么。
2021-05-08 21:39:20
我已经完成了所有这些
2021-05-09 21:39:20
@DurgeshPandey - 做了什么?
2021-05-14 21:39:20

如果您从其他域访问数据,则必须覆盖 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);
    }
});
此问题与 OP 收到的特定错误消息不一致。这不是一个通用的跨源问题,它与通用不同。
2021-05-15 21:39:20