javascript - JSON Api 调用 "POST"

标签 javascript ajax json wordpress api

我尝试使用以下测试代码在我的 WordPress 系统上注册用户(已安装 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/?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 属性向页面添加一个脚本元素,这使得浏览器获取脚本。

如果端点支持Cross-Origin Resource Sharing ,您可以使用 POST(您需要删除 URL 的 callback=? 部分)。如果没有,您将无法使用 POST 与该端点跨源通信,因为 Same Origin Policy .

旁注:我看不出您的调用需要使用 POST 的任何原因,因为您没有发送任何数据(选项中没有 data 属性) ajax 调用)。您可能只想删除 type: "POST",将 dataType: "json" 更改为 dataType: "jsonp",然后删除&callback=? (因为当您指定 dataType: "jsonp" 时 jQuery 会处理该问题)。

关于javascript - JSON Api 调用 "POST",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32421219/

相关文章:

javascript - jQuery - 选择除

javascript - 用户输入后如何获取 MathQuill 数据?

c# - 是否有 WebMethod 的替代方案以绕过回发但访问 Session

json - 从 json 文件导入 Azure Devops 管道变量

javascript - Google Chrome 开发者工具中的自定义堆栈跟踪?

javascript - Javascript函数自行调整大小

javascript - 如何从异步调用返回响应?

javascript - 如何在 phonegap 应用程序中使用存储在 localStorage 中的 json 提要?

javascript - JSON Javascript 对象属性返回未定义,尽管对象的日志显示它存在

java - 使用 JSON 转换器的自定义字段扩展 HashMap