0

我正在尝试接收来自 php 的响应,该响应以以下格式返回响应:

PHP 响应

 response=1

查询

$.get('getstate.php', {
    email: $('#game-email').val(),
    country: 'DE',
    lang: lang,
    source: 'promotion'
}, function (data) {
    console.log(data);
});

当我在浏览器中加载 php 时,它会在浏览器中给出正确的响应:

getstate.php?email=test@gmail.com&country=DE

但是当我尝试接收响应并显示变量数据中收到的值时,什么也没有出现。我可能做错了什么?谢谢!

4

1 回答 1

3

您必须使用 jquery 实用程序函数,例如$.get$.ajaxtype as GET

如果您能够在浏览器 url 中获得结果,那么结果将来自GET请求,并且在jquery代码中您正在发出发布请求。

更新评论

“Access-Control-Allow-Origin 不允许 Origin null。”

当您可能正在向另一个域中的页面发出 ajax 请求时,或者当您通过双击直接加载页面而不通过主机 url 时,就会出现此问题。

即,而不是file:///在 url 地址中,您应该具有与您请求的 php 页面相同的域名。

如果您要进行跨域 AJAX 请求

如果您的 ajax 请求目标页面位于另一个域中,您可以执行跨域 ajax 请求

你应该设置

Access-Control-Allow-Origin: *

托管 ajax 目标页面的服务器上的标头。将该值设置为*意味着它将允许来自任何域的请求,因此它使安全性变得可敬,如此所述。

同样在客户端,您可以使用 Jquery.ajax 实用程序函数并将crossDomain设置设置为 true。这也将存在在 IE 版本中不起作用的问题。

请参阅一些描述此问题的相关问题。

这篇关于 jquery docs 的文章讨论了同样的问题,并通过包含一个我之前尝试过并开始工作的 js 修复文件提到了一个建议。

下面是一些相关链接,用于在各种服务器中设置 CORS 支持并在客户端进行 ajax 调用。

向我的服务器添加 CORS 支持

在 JavaScript 中使用 CORS

于 2013-03-22T09:45:47.593 回答