如何发送跨域ajax请求[重复]

Posted

技术标签:

【中文标题】如何发送跨域ajax请求[重复]【英文标题】:How to send a cross domain ajax request [duplicate] 【发布时间】:2017-06-17 23:20:00 【问题描述】:

我想发送一个跨域 ajax 请求,但我遇到了以下错误我还尝试了下面的代码,我从一篇堆栈文章中获得了是否可以发送跨域请求。

我尝试发送跨域请求的代码。

$(document).ready(function () 
    $.ajax(
        type: 'POST',
        url: "http://testdomain.com/config.php",
        crossDomain: true,
        data: 'rejected_by_loid=' + 1,
        success: function (msg) 
            $('#survey').html(msg);
        
    );
);

控制台日志错误:

跨域请求被阻止:同源策略不允许读取位于http://beta.paravey.com/paraveyads/config.php 的远程资源。 (原因:CORS 标头“Access-Control-Allow-Origin”缺失)。

请帮我解决这个问题。

【问题讨论】:

你需要在服务器上允许跨域ajax访问。请您的系统管理员允许您连接到该服务器。 你控制beta.paravey.com/paraveyads/config.php吗?如果是这样,请将标头添加到响应中。如果没有,您需要寻找不同的解决方案,例如向您的服务器发送 ajax 帖子,然后从您的服务器向 beta.paravey.com/paraveyads/config.php 发送 curl 请求。 【参考方案1】:

您必须在http://testdomain.com/config.php中定义受信任的域名:

header('Access-Control-Allow-Origin: http://requested-domain.com', false);
header('Access-Control-Allow-Origin: http://requested-domain2.com', false);

最后一个参数false 禁止覆盖相同的标头。

当然,如果您想为所有呼叫开放您的域,您可以设置:

header('Access-Control-Allow-Origin: *');

【讨论】:

这实际上是一个更好的答案 - 您确实想要限制允许的域以降低(尽管很小)安全风险:***.com/questions/12001269/…【参考方案2】:

把它放在config.php之上

 header('Access-Control-Allow-Origin: *');  

【讨论】:

非常感谢您的宝贵支持:)。

以上是关于如何发送跨域ajax请求[重复]的主要内容,如果未能解决你的问题,请参考以下文章

聊聊Ajax跨域

使用 AJAX 发送 HTTP 跨域请求

跨域 Ajax 调用与 php 请求 [重复]

php 怎么判断是不是ajax请求

ajax 跨域

Ajax跨域请求设置标头失败