[英]JSON Api Call with “POST”
我嘗試以下測試代碼在我的Wordpress系統上注冊用戶(已安裝JSON Api User插件):
<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/?username=xxx@test.de&email=xxx@test.de&nonce=d60besdfee&display_name=xxx@test.de&user_pass=rtzrtzrtz0&apikey=gfhrtzh465&callback=?',
type: "POST",
dataType: 'json',
success: function(data){
}
});
}
</script>
代碼有什么問題?
問題在於您正在調用的端點使用JSONP ,而不僅僅是JSON。 JSONP是一種數據格式(JSON) 和傳輸機制(腳本元素)。 它本質上僅是GET,而不是POST,因為在幕后實際上是向頁面添加具有src
屬性的腳本元素,這使瀏覽器可以獲取腳本。
如果端點支持跨域資源共享 ,則可以使用POST(您將要刪除URL的callback=?
部分)。 如果不是,則由於Same Origin Policy ,您無法使用POST與該端點交叉源對話。
旁注:我看不到您的呼叫需要使用POST的任何原因,因為您沒有發送任何數據( ajax
呼叫的選項中沒有data
屬性)。 您可能只想刪除type: "POST"
,將dataType: "json"
更改為dataType: "jsonp"
,並刪除&callback=?
(因為當您指定dataType: "jsonp"
時,jQuery將處理該問題)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.