2015-09-06 70 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"时处理该问题)。