gpt4 book ai didi

javascript - 使用 javascript 对外部 url 的 Ajax 请求

转载 作者:行者123 更新时间:2023-11-29 17:09:20 26 4
gpt4 key购买 nike

我正在尝试对外部 url 执行 ajax 请求。现在我正在用 php 执行此操作

作为

$data = array(
'TokenID' => $tokenid,
'APIKey' => $api_key,
'EcryptedData' => $encrypted_data,
'TokenScheme' => 4
);
//convert to JSON
$json = json_encode($data);
//curl config
$ch = curl_init("https://testingonetwo.com/rest/");
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json', //we are using json in this example, you could use xml as well
'Content-Length: '.strlen($json),
'Accept: application/json') //we are using json in this example, you could use xml as well
);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

$outputjson = curl_exec($ch);

我尝试使用 javascript 做同样的事情。我尝试使用 jquery,但没有成功

我试过的 jquery 代码是

$data = array(
'TokenID' => $tokenid,
'APIKey' => $api_key,
'EcryptedData' => $encrypted_data,
'TokenScheme' => 4);
$json = json_encode($data);
$.ajax({
type: "POST",
url: 'https://testingonetwo.com/rest/',
data: {data:$json},
success: success,
dataType: "json"
});
alert(result);
function success(result) {
alert('done');
}

我是客户端浏览器脚本的新手。请帮我尝试上面的 javascript,我更喜欢。期待一些帮助。

最佳答案

如果服务器不支持 cors,或者不使用 JSONP 响应,您将需要使用中间人脚本来获取数据。

JS

$.ajax({
type: "POST",
url: 'https://YourOwnDomain.com/myPhpScript.php',
success: success,
dataType: "json"
});

PHP

...
$outputjson = curl_exec($ch);
echo $outputjson;
die;

如果他们使用 jsonp 响应,您可以使用 jQuery 的 jsonp 功能来获取数据,查看其他域的文档,了解如何调用他们的休息服务,如果他们允许的话,他们应该有关于进行 jsonp 调用的详细信息。一般的代码是这样的:

$data = {
'TokenID':$tokenid,
'APIKey':$api_key,
'EcryptedData':$encrypted_data,
'TokenScheme':4};

$.ajax({
type: "POST",
url: 'https://testingonetwo.com/rest/?callback=?',
data: {data:$data},
success: success,
dataType: "jsonp"
});

但是因为你有看起来像 API key 和 TokenID 的东西,如果它们应该是 secret 的(即最终用户不应该能够看到它们)那么你不应该使用显示这些细节的 javascript,即使用中间人脚本。

关于javascript - 使用 javascript 对外部 url 的 Ajax 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22730894/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com