1

也许我是第 N 个提出这个问题的用户,但我想不通。

ajax 调用的数据字符串似乎是空的还是什么?要么我没有得到任何关于成功或错误功能的反馈。

$.ajax({
  type:'POST',
  url:'http://www.example.com/test.php',
  data:'lid=test',
  succes: function(data){
    console.log(data);
  },
  error:function(data){
    console.log(data);
  }
});

我希望有人可以帮助我吗?

亲切的问候,

坦率

4

6 回答 6

5

没有succes功能。你可能的意思是success

于 2013-05-03T10:39:09.660 回答
3

这是因为同源政策。您不能使用 ajax 调用外部站点。如果你真的想使用,你必须使用JSONP。或者您可以为此使用服务器端代理。意思是,在服务器端调用外部站点并对那个 web 服务进行 ajax 调用。

有关更多信息,请参阅此链接和此答案 https://stackoverflow.com/a/8698786/880434

于 2013-05-03T10:40:58.653 回答
2

尝试这个

 $.ajax({
        type:'POST',
        url:'http://www.example.com/test.php',
        crossDomain: true,
        data:'lid=test',
        success: function(data){
            console.log(data);
        },
        error:function(data){
            console.log(data);
        }
    });
于 2013-05-03T10:39:52.490 回答
1

AJAX 请求通常仅限于同一个域。这是我在另一个堆栈溢出答案中找到的一些信息,使用 Access-Control-Allow-Origin 标头

或者,如果您的响应格式正确,您可以尝试JSONP 请求

于 2013-05-03T10:39:45.147 回答
1

您被浏览器“同源策略”阻止。也就是说,您不能对加载脚本的域以外的域执行 ajax 请求。但是,有一些解决方法:

  1. 使用JSONP。这可能是最跨浏览器兼容的解决方案
  2. 配置您的应用程序以支持CORS。这适用于大多数现代浏览器,但不适用于一些较旧的浏览器。
  3. 在您自己的服务器上创建代理服务。也就是说,挂载一个端点,例如/externalService将服务器端的请求代理到远程端点。它也适用于所有浏览器,但在服务器端会涉及更多工作。
于 2013-05-03T10:39:56.610 回答
0

服务器 www.example.com 应该有 cross-domain.xml,其中包含允许请求和获得响应的域名。因此,请添加您的请求来自的域,或者只需将域名添加为“*”以接受所有域名

于 2013-05-03T10:39:52.747 回答