如何使用GET方法将数据发送到另一个域?

时间:2018-08-30 18:01:18

标签: javascript jquery ajax request client-side-scripting

我的Javascript文件生成一个JSON,我想将一些必要的值发送到链接www.leaderpush.com/Send/Getjson?Endpoint=endpoint&P256dh=p256dh&Auth=auth

var obj = JSON.parse(t);
var endpoint = obj.endpoint;
var p256dh = obj.keys.p256dh;
var auth = obj.keys.auth;

但是我无法将其发送到另一个域。当我尝试时,发送的URL变为www.AnyDomain.com/www.leaderpush.com/Send ...

您的建议是什么?

2 个答案:

答案 0 :(得分:3)

您需要正确设置网址的格式。

url = "//www.leaderpush.com/Send/Getjson?Endpoint=endpoint&P256dh=p256dh&Auth=auth";

您需要在开始时使用//来指示紧随该URL的域名,否则将其视为相对于当前URL的文件名。

顺便说一句,如果另一个域禁止CORS,则此方法可能仍然无法工作。您可能需要从服务器而不是客户端发出请求。

答案 1 :(得分:1)

由于您在请求URL中没有绝对提及协议(HTTP / HTTPS)或相对(//),因此浏览器将其视为路径,并将请求URL附加在原始域之后。而且请求域似乎不支持并且具有有效的HTTPS证书,因此请确保您的源域是HTTP,并且请求域(//www.leaderpush.com)受CORS支持。

  

注意:尝试在$ .ajax()请求标头中包含 crossDomain:true ,以防目标服务器可能应请求提供服务以对客户端启用跨域。