我正在使用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来实现这个目标,但我真的想要一个更清洁的解决方案。此外,我宁愿不依赖其他服务器代理请求。
答案 0 :(得分:7)
我是否理解正确,您希望向您无法控制的服务器发送请求,但是如果您收到回复则不在乎?
如果是这种情况,您可以在javascript中创建图像并使用服务器地址作为其来源:
var img = new Image();
img.src = 'http://service.somedomainidontcontrol.com';
只要将src
添加到图像,就会向服务器发出请求。你会得到一个没有任何意义的回应作为一个图像,但谁在乎。 :)
答案 1 :(得分:0)
警告即可。这是旧的,但我想指出其他人发现这一点,对于img解决方案 - 这不再是"异步"。这意味着如果服务器响应缓慢,可以延迟页面加载时间。
如果您使用img标记解决方案,请确保将其挂钩到页面完成或采取其他步骤不会影响网站性能。