我正在使用WORDPRESS REST API和Wordpress版本4.8。我们已经禁用永久链接(安全原因),因此我正在访问posts对象:
https://wordpress-dosstx.c9users.io/?rest_route=/wp/v2/posts
这在Chrome和某些版本的IE中运行良好,但在FireFox和其他一些版本的不同浏览器中收到失败的CORS请求消息。
我以为我尝试设置使用JSONP来解决此限制的请求。但是,由于我们关闭了固定链接,因此我不确定如何编写路由。根据WP API docs,API原生支持JSONP响应,我写这样的东西:
<script>
function receiveData( data ) {
// Do something with the data here.
// For demonstration purposes, we'll simply log it.
console.log( data );
}
</script>
<script src="https://wordpress-dosstx.c9users.io/?rest_route=/wp/v2/posts?_jsonp=receiveData"></script>
但是,由于我没有使用固定链接,我如何在脚本标记中编写脚本URL?文档说要像这样编写索引路径:
https://wordpress.org/wp-json/wp/v2/ would become https://wordpress.org/?rest_route=/wp/v2
我尝试将jsonP回调函数附加到post对象会让我找不到404。知道我应该将JSONP语法添加到路由的正确方法是什么?我的下面尝试没有用。
<script src="https://wordpress-dosstx.c9users.io/?rest_route=/wp/v2/posts?_jsonp=receiveData"></script>
JSFIDDLE可用于测试:JSFIDDLE
答案 0 :(得分:0)
看起来你有一个错字,一个额外的?在url查询字符串中。
替换:
src="https://wordpress-dosstx.c9users.io/?rest_route=/wp/v2/posts?_jsonp=receiveData"
使用:
src="https://wordpress-dosstx.c9users.io/?rest_route=/wp/v2/posts&_jsonp=receiveData"
确保使用&
分隔查询字符串中的多个参数。参见例如this informative Wikipedia article了解更多相关信息。