标签: jsonp

ajax响应字节大小

我正在使用jQuery的getJSONP,我想记录调用的持续时间和响应的大小,以便能够获得有关我的应用程序使用情况的一些统计信息.这是一个跨域的ajax调用,所以我需要使用JSONP,但由于没有使用XMLHttpRequest对象进行JSONP调用,因此来自jquery的ajax的完整回调不会传递响应内容.

所以我的问题是如何从JSONP调用中获取响应大小(内容长度).

$.ajaxSetup(
{
    complete:function(x,e)
    {
         log(x.responseText.length, x.responseText);
    }
}
Run Code Online (Sandbox Code Playgroud)

这里x是用于JSON调用的XMLHttpRequest对象,但是对于JSONP调用是未定义的.

javascript size jquery jsonp response

3
推荐指数
1
解决办法
7859
查看次数

Bing搜索API使用Jsonp无效,标签无效

在Bing的json请求(bing搜索,而不是map)中苦苦挣扎,我收到一条错误回复,上面写着"无效标签"

我的查询网址是:

var bingurl="http://api.search.live.net/json.aspx?Appid=##APIKEY##&query=Honda&sources=web";


 $.ajax({
            type: "GET",
            url: bingurl,
            data: "{}",
            contentType: "application/json; charset=utf-8",
            dataType: "jsonp",
            success: function(data) {

                $callBack(data);
            },
            error: function(msg) {
                alert("error" + msg);
            }
        });
Run Code Online (Sandbox Code Playgroud)

Firebug报告'无效标签',然后转储json响应.

不知道出了什么问题?帮助赞赏.

javascript jquery json jsonp bing

3
推荐指数
1
解决办法
3062
查看次数

jsonpCallback函数不起作用

更新1:

我刚刚从jquery 1.4.4升级到1.6.1.这对原始问题中的脚本有何影响?

原始问题:

正如我测试一样,我做了:

$(document).ready(function() {
    get_jsonp_feed();

    function get_jsonp_feed() {
        $.ajax({
            url: 'http://www.remote_host.co.uk/feed.php',
            type: 'GET',
            dataType: 'jsonp',
            jsonp: 'callback',
            jsonpCallback: 'jsonpCallback',
            error: function(xhr, status, error) {
                alert("error");
            },
            success: function(jsonp) { 
                alert("success");
            }
        });
    }

    function jsonpCallback(data){
        alert("jsonpCallback");
    }
});
Run Code Online (Sandbox Code Playgroud)

我期待得到2个警报,第一个显示success和第二个显示jsonpCallback.但我只收到第一个警报success.为什么第二个警报没有出现?

jquery jsonp

3
推荐指数
1
解决办法
3万
查看次数

当JSONP数据发生变化时

更新1:

我可以通过try/catch来解决这个问题,但是当我知道问题是什么时,我宁愿不使用这个方法:

try {
    buildHTML.push( "<tr><td>" + day.td[0].div.abbr.content + "</td><td><img src='" + day.td[1].div.div.img.src + "' /></td><td>" + day.td[2].span[0].span.content + "</td><td>" + day.td[3].span[0].span.content + "</td><td>" + day.td[4].span[0].span[1].content + "</td>");
} catch(err) {
    buildHTML.push( "<tr><td>" + day.td[0].div.abbr.content + "</td><td><img src='" + day.td[1].div.div.img.src + "' /></td><td></td><td>" + day.td[3].span[0].span.content + "</td><td>" + day.td[4].span[0].span[1].content + "</td>");
}
Run Code Online (Sandbox Code Playgroud)

原始问题:

使用以下jsonp服务:

http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%20%3D%20%22http%3A%2F%2Fnews.bbc.co.uk %2Fweather%2Fforecast%2F4276%3F%26search%3Dgerrards%2520cross%26itemsPerPage%3D10%26region%3Dworld%26area%3DGerrards%2520Cross%22%20于是%20xpath%3D '%2F%2Ftbody' &格式= JSON&回调= cbfunc22

我使用以下脚本来捕获数据:

$(document).ready(function() {
    get_bbc_weather();

    function get_bbc_weather() {
        $.ajax({
            url: "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%20%3D%20%22http%3A%2F%2Fnews.bbc.co.uk%2Fweather%2Fforecast%2F4276%3F%26search%3Dgerrards%2520cross%26itemsPerPage%3D10%26region%3Dworld%26area%3DGerrards%2520Cross%22%20and%20xpath%3D'%2F%2Ftbody'&format=json&callback=cbfunc22&rand=" + Math.random(),
            type: 'GET',
            dataType: 'jsonp',
            jsonp: 'callback',
            jsonpCallback: 'cbfunc22', …
Run Code Online (Sandbox Code Playgroud)

javascript jquery json jsonp

3
推荐指数
1
解决办法
306
查看次数

如何将代理添加到Node/Express站点?

我的网站在Node上运行并使用Express框架.

我的目标是从Yahoo Placefinder api收集数据.它不支持JSONP,所以我需要将我的JQuery.getJSON请求发送到我自己的代理.然后我的代理会向Placefinder api发送一个http请求,并回应响应.

如果我使用的是php而不是Node,我只需要创建一个新的php文件,其中包含对placefinder api的curl请求并回显响应.

但是,我正在使用Node,我不知道从哪里开始.

而且,我正在使用Express框架.

我的问题是:

  1. 代理在哪里适合Express框架?公用文件夹?

  2. 在哪里可以找到有关如何在Node中编码代理的一些信息?

  3. 我是否需要修改Rackspace云(ubuntu)服务器的配置才能实现此目的?

proxy json jsonp node.js express

3
推荐指数
1
解决办法
9479
查看次数

JSONP和XMLHttpRequest问题

我试图在浏览器(以及Javascript新手)中理解相同的原始策略,并在维基百科上遇到了JSONP页面.该如何使用一节说-

现在,考虑可以指定任何URL,包括返回JSON的URL,作为元素的src>属性.这意味着可以通过> HTML页面中的脚本元素检索JSON.

但是,JSON文档不是JavaScript程序.如果要由浏览器在元素中进行评估,则src URL的返回值必须是可执行的JavaScript.在JSONP使用模式中,URL返回动态生成的JSON,其中包含一个函数调用.这是JSONP的"填充"(或有时候,"前缀").

我的问题是 -

  • 那么XMLHTTPRequest()应该只返回javascript或html吗?它不能返回纯粹的json文档吗?
  • 我认为相同的源策略不适用于XMLHttpRequest()调用.为什么需要在DOM中注入一个标签来调用第三方服务器?这是所有网站的广告附加组件如何回家收集数据?
  • 最后,我根本不理解JSONP.有人可以向我解释或推荐一个更好的解释吗?

谢谢,

- P.

javascript jsonp xmlhttprequest

3
推荐指数
1
解决办法
5194
查看次数

如何使用JSON.NET解析格式错误的JSONP与十六进制编码的字符?

我打电话给google的词典api,如下所示:

var json = new WebClient().DownloadString(string.Format(@"http://www.google.com/dictionary/json?callback=dict_api.callbacks.id100&q={0}&sl=en&tl=en", "bar"));
Run Code Online (Sandbox Code Playgroud)

但是我得到一个响应,该代码无法正确解析:

json = json.Replace("dict_api.callbacks.id100(", "").Replace(",200,null)", "");
JObject o = JObject.Parse(json);
Run Code Online (Sandbox Code Playgroud)

解析在遇到这个问题时死了:

"entries":[{"type":"example","terms":[{"type":"text","text":"\x3cem\x3ebars\x3c/em\x3e of sunlight shafting through the broken windows","language":"en"}]}]}
Run Code Online (Sandbox Code Playgroud)

\ x3cem\x3ebars\X

东西杀了解析

有没有办法用JSON.NET处理这个JSONP响应?

答案通过阿奎那的另一个"解析JSONP"问题表明不错的正则表达式x = Regex.Replace(x, @"^.+?\(|\)$", "");来处理与JSONP部分(可能需要调整这种情况正则表达式),所以主体这里是如何应对的十六进制编码的字符.

c# jsonp google-api json.net

3
推荐指数
1
解决办法
2132
查看次数

如何使用angularjs $ http来修复我的jsonp回调以解决"意外令牌"错误?

从谷歌应用程序脚本接收jsonp的规范不会在返回数据中导致"意外令牌".

我正在使用angularjs $ http.jsonp - 它不喜欢语法?prefix =?在我的URL谷歌应用程序脚本的末尾.

这适用于jQuery,但我试图通过这个应用程序的所有角度.这是我从以前的用户分叉小提琴.这是请求,这很好:

function jsonp_example($scope, $http) {
$scope.doRequest = function() {
    var url = "https://script.google.com/macros/s/AKfycbyTnhcsnyXKJqZdF8yAppVQjXX935J9-YTJOHyf7jkea16gSsOA/dev?prefix=?";

    $http.jsonp(url);
};
Run Code Online (Sandbox Code Playgroud)

请打开控制台.

ajax jsonp google-apps-script angularjs

3
推荐指数
1
解决办法
7243
查看次数

如何在node.js + Express中同时支持json和jsonp响应?

我有一个REST API服务,写在Node.js + Express上,目前支持JSON格式的响应.

现在,我还需要添加对JSONP响应的支持,所以每个人都可以通过在请求字符串中添加alt = JSONP来获取它.

所以,我的问题是,这是最好的方法吗?

可能,有一个模式,或生活的例子?

谢谢!

rest json jsonp node.js express

3
推荐指数
1
解决办法
3725
查看次数

使用JSONP或CORS进行跨域JavaScript调用

如何在客户端和服务器中使用jsonp和CORS在网页上实现跨域ajax调用.

例如,www.mytestsite.com要进行ajax调用www.otherdestinationserver.com,如何实现使用JSONPCORS实现?

ajax jquery jsonp cors

3
推荐指数
1
解决办法
1万
查看次数