WP Rest API:使用永久链接禁用的JSONP和路由?

时间:2017-08-31 17:08:05

标签: javascript wordpress wordpress-rest-api

我正在使用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

1 个答案:

答案 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了解更多相关信息。