使用javascript对外部URL的Ajax请求

皮雅

我正在尝试向外部URL发出ajax请求。

作为

$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,我更喜欢。希望有所帮助。

帕特里克·埃文斯(Patrick Evans)

如果服务器不支持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功能来获取数据,请参阅其他域的文档以了解如何调用其rest服务,如果他们允许的话,他们应该提供有关执行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密钥和TokenID(如果它们应该是秘密的)(即最终用户应该看不到它们)的外观,那么您就不应该使用显示这些详细信息的javascript,即使用Middleman脚本。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

春季测试MockMvc对外部URL执行请求

使用LESS从绝对外部URL注入CSS内容

在 php href 中对外部 url 使用变量

使用外部URL响应请求

使用大理石对外部URL进行单元测试NGRX效果

如何使用 JavaScript (jQuery) Ajax 从外部 URL 获取 JSON?

jQuery .get():对外部API的请求-访问错误:不匹配

Sharepoint如何获取对外部Web服务的请求

从Django项目实现对外部API的异步请求?

使用ajax请求多个URL

Redis:对外部呼叫开放:“ bind:地址已在使用中”

对外部函数中的变量使用tkinter条目

Embedded Groovy:如何对外部变量使用静态类型检查?

如何使用intersphinx正确编写对外部文档的交叉引用?

可以对外部循环使用break吗?

活性香蕉:使用对外部API的参数化调用

Java:使用继承对外部类的引用数

在Oracle SQL中对外部联接表使用模式匹配

使用内部字典值(Python)对外部字典进行排序

如何使用Ajax发布复杂的URL请求

AJAX请求不能与外部页面一起使用?

具有对外部api的基本身份验证的获取请求的Firebase云功能

Firebase Cloud Functions(Spark Tier)中对外部API的HTTP请求被拒绝

Ajax请求相同的URL

为什么我们对脚本使用<script>而不对外部CSS使用<style>?

对外部 API 的 HTTP 请求适用于 .NET,但不适用于 React(CORS 问题)

Angular 2:针对 CORS 阻止对外部 API 的简单 Get 请求,但在网络监视中获得 200

使用Rails无法通过Ajax请求中的url传递参数

Javascript Ajax请求