jQuery:getJSON vs get,http标头? (Twitter API)

时间:2010-11-25 10:38:32

标签: ajax jquery

嘿所有人。我正在通过javascript使用Twitter API,我正在拨打user_timeline.json的电话。似乎一切都与jQuery.getJSON一致,但我真的希望将响应作为一个字符串,而不是将它转换为getJSON所做的对象。当我将方法从getJSON更改为get时,我在Chrome中收到以下错误:

Origin http://localhost is not allowed by Access-Control-Allow-Origin.

这似乎是由缺少Accept标头引起的。我对么?如果是这样,我如何为原始get方法指定HTTP标头?

感谢。

2 个答案:

答案 0 :(得分:3)

你不能把它作为原始文本,整个工作的方式是JSONP,它创建一个<script>标签,返回的数据是实际的JavaScript,如下所示:

myFunc({ ...data ... });

这里不是jQuery将它转换为JSON,它是实际的JavaScript被调用,其中myFunc是你的回调函数...所以请求永远不会处理文本,它是一个javascript对象。< / p>

答案 1 :(得分:1)

只有当您使用JSON时,才允许使用Ajax查询与原始域不同的域。 (出于安全原因

您需要使用服务器代理才能执行此操作。


如果你想要字符串格式的实际JSON,那么只需重新字符串化它。

使用https://github.com/douglascrockford/JSON-js并致电var jsonString = JSON.stringify( yourJsonObject );