繁体   English   中英

Ajax JQuery将POST数据发送到外部api

[英]Ajax JQuery Send POST data to external api

我到处搜索以获取问题的答案。 我真的需要专家来解决我的问题。 我已经创建了使用ajax将数据发布到外部api网址的代码。

我创建的代码如下:

 $.ajax({ url: "https://www.billplz.com/api/v3/collections", beforeSend: function(xhr) { xhr.setRequestHeader("Authorization", "Basic " + "73eb57f0-7d4e-42b9-a544-aeac6e4b0f81:"); }, type: "POST", data: { "title": "My First API Collection" }, contentType: 'application/json', dataType: 'jsonp', success: function(data) { alert("Successfully Registered.."); }, error: function(xhRequest, ErrorText, thrownError) { alert("Failed to process correctly, please try again"); console.log(xhRequest); } }); 

我试图从API doc获取以下示例curl代码:

 # Creates an open collection curl https://www.billplz.com/api/v3/open_collections \\ -u 73eb57f0-7d4e-42b9-a544-aeac6e4b0f81: \\ -d title="My First API Open Collection" \\ -d description="Maecenas eu placerat ante. Fusce ut neque justo, et aliquet enim. In hac habitasse platea dictumst." \\ -d amount=299 

API文档在这里

我尝试了上一个问题给出的所有方法,但是没有运气。 我也尝试在不使用PHP的JQuery / AJAX中执行此操作。

我不知道我该怎么做。 但这是我的问题的答案。 我希望它可以帮助其他人。

第一件事是不要使用AJAX来发布您的授权密钥,因为AJAX会发布任何人都可以读取的JSON对象。 对于curl过程,我们需要使用服务器端脚本,例如Perl,PHP,Python,Ruby,JavaScript(节点),Scala,Java,Go,ASP.NET或ColdFusion。

以我为例,我使用PHP进行卷曲过程。 以下是我的Ajax发布代码:

 $.ajax({ url: 'creating_bill.php', data: { item : 'item' }, type: "POST", dataType: "json", success: function (data) { alert('Success ! You will redirect in 100 seconds'); console.log(data) window.open(data.url, '_blank'); setTimeout(function() { window.location = 'index.html'; },10000); }, async: false, error: function(data) { handleRequestError(data); } }) } 

以下是我在php中执行curl处理的代码:

 <?php $item = $_POST['item']; $api_key = ''; $api_url = ''; $collection_id = ''; $data = array( 'item' => $item, ); $process = curl_init($api_url); curl_setopt($process, CURLOPT_HEADER, 0); curl_setopt($process, CURLOPT_USERPWD, $api_key . ":"); curl_setopt($process, CURLOPT_TIMEOUT, 30); curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($process, CURLOPT_POSTFIELDS, http_build_query($data) ); $result = curl_exec($process); curl_close($process); print_r($result); $return = json_decode($result, true); ?> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM