1

我正在使用 jQuery 的 $.ajax 对我无法控制的不同域上的服务器进行 Web 服务调用。不幸的是,服务器使用 JSON 响应,而不是 JSONP。因此,Unexpected Token :当我的回调尝试在没有回调“填充”它的情况下执行 JSON 时出现错误(JSON 本身不是有效的 Javascript)。

我想知道是否有办法使用 $.ajax 发出跨域 GET 请求并忽略响应。我这里真的只需要单向交流。

代码片段:

$.ajax( 
{
    url: 'http://service.somedomainidontcontrol.com',
    method: 'GET',
    dataType: 'jsonp',
    success: function(){
      e_log("Success");
    },
    data: my_data
  }
);

服务器响应(我想忽略):

{"status":"success"}

我突然想到我也许可以在 DOM 上附加一个 iFrame 来完成这个,但我真的想要一个更干净的解决方案。另外,我不希望依赖另一台服务器来代理请求。

4

2 回答 2

7

我是否正确理解您,您想向您无法控制的服务器发送请求,但不在乎您是否得到响应?

如果是这种情况,您可以在 javascript 中创建图像并使用服务器地址作为其来源:

var img = new Image();
img.src = 'http://service.somedomainidontcontrol.com';

一旦您将其添加src到图像中,它就会向服务器发出请求。你会得到一个作为图像没有任何意义的响应,但谁在乎呢。:)

于 2013-10-01T23:07:14.763 回答
0

警告。这是旧的,但我想指出其他人发现这一点对于 img 解决方案 - 这不再是“异步的”。这意味着如果服务器响应缓慢,您可以延迟页面加载时间

如果您使用 img 标签解决方案,请务必将其与页面完成挂钩或采取其他步骤,以免影响网站性能。

于 2017-02-01T11:07:40.173 回答