我正在使用jQuery的$ .ajax向我无法控制的其他域上的服务器进行Web服务调用。不幸的是,服务器使用JSON而不是JSONP进行响应。因此,当我的回调尝试执行JSON而没有回调“填充”时,出现Unexpected Token :错误(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来完成此操作,但我确实想要一个更干净的解决方案。另外,我也不想依赖其他服务器来代理请求。

最佳答案

我是否正确理解您的意思,就是想将请求发送到不受控制的服务器,但是不在乎是否收到响应?

在这种情况下,您可以在javascript中创建图像,并将服务器地址用作其源:

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


src添加到映像后,它将立即向服务器发出请求。您会得到一个像图像一样毫无意义的回应,但谁在乎。 :)

10-04 22:28
查看更多