2017-02-13 78 views
0

我搜索了各處以獲得我的問題的答案。我真的需要一位專家來幫助我解決問題。我創建了使用ajax將數據發佈到外部api url的代碼。Ajax JQuery將POST數據發送到外部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文檔此示例捲曲代碼:

# 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文檔是here

我已經嘗試了前面的問題給出的所有方法,但沒有運氣。我也試圖在沒有PHP的JQuery/AJAX中做到這一點。

+0

什麼是您的服務器地址是什麼? 'http'還是'https'? –

+0

使用https @AtaurRahmanMunna的外部api –

+0

瀏覽器控制檯顯示的錯誤是什麼?你能檢查一下嗎? –

回答

0

我不知道如何設法做到這一點。但這是我的問題的答案。我希望它能幫助別人。

第一件事就是不要使用AJAX來發布授權密鑰,因爲AJAX會發布任何人都可以閱讀的JSON對象。對於curl過程,我們需要使用像Perl,PHP,Python,Ruby,JavaScript(Node),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代碼來執行卷曲過程:

<?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); 
 
?>