2015-09-06 45 views
0

我嘗試下面的測試代碼在我的WordPress系統註冊用戶(JSON API用戶插件安裝)「POST」:JSON API調用與

<form id="register" name="register" method="post"> 
<input id="submitLogin" type="submit" value="Abschicken" onclick="register()"> 
</form> 


<script type="text/javascript" charset="utf-8"> 


function register() { 
$.ajax({ 
url: 'http://XXX.de/api/user/register/[email protected]&[email protected]&nonce=d60besdfee&[email protected]&user_pass=rtzrtzrtz0&apikey=gfhrtzh465&callback=?', 
type: "POST", 
dataType: 'json', 
success: function(data){ 

} 
}); 
} 

</script> 

什麼是錯的代碼?

回答

2

問題是您要呼叫的終端使用JSONP,而不僅僅是JSON。 JSONP是一種數據格式(JSON)傳輸機制(腳本元素)。它本質上只有GET,而不是POST,因爲在封面之下,實際上是在頁面中添加一個腳本元素,其中src屬性使得瀏覽器獲得腳本。

如果端點支持Cross-Origin Resource Sharing,則可以使用POST(您將要刪除callback=?部分URL)。如果沒有,則由於Same Origin Policy的原因,您不能使用POST與該終端節點交叉。

附註:我看不到任何理由您的通話需要使用POST,因爲你不發送任何數據(不data屬性的選項爲ajax調用)。您可能只想刪除type: "POST",將dataType: "json"更改爲dataType: "jsonp",並刪除&callback=?(因爲jQuery將在您指定dataType: "jsonp"時處理該問題)。