标签: jsonp

dropbox jsonp文件

我正在尝试使用来自跨域的纯javascript/html下载一些数据,dropbox是特定的.

<html>
<head>
</head>
<body>
    <div id = 'twitterFeed'></div>
    <script>
    function myCallback(dataWeGotViaJsonp){
        var text = '';
        var len = dataWeGotViaJsonp.length;
        for(var i=0;i<len;i++){
            twitterEntry = dataWeGotViaJsonp[i];
            text += '<p><img src = "' + twitterEntry.user.profile_image_url_https +'"/>' + twitterEntry['text'] + '</p>'
        }
        document.getElementById('twitterFeed').innerHTML = text;
    }
    </script>
    <script type="text/javascript" src="http://dl.dropbox.com/u/6438697/padraicb.json?count=10&callback=myCallback"></script>
</body>
Run Code Online (Sandbox Code Playgroud)

出于某种原因,json没有加载.但是,当我将网址设为" http://twitter.com/status/user_timeline/padraicb.json?count=10&callback=myCallback " 时,json会正确加载.我从这里得到了这个例子

任何人都可以解释为什么Dropbox不起作用?

谢谢!

更新:

<script type=text/javascript>
function myCallback(dataWeGotViaJsonp){
    alert(dataWeGotViaJsonp);
}
</script>
<script type="text/javascript" src="http://dl.dropbox.com/u/6438697/test2?&callback=myCallback"></script>
Run Code Online (Sandbox Code Playgroud)

返回[object object]或undefined ......还有什么问题?test.json的内容是myCallback({"your":"json"});

javascript text jsonp file dropbox

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

JSONP使用Google Apps脚本的ContentService?

我试图用contentService的,以服务JSONP与网页谷歌Apps脚本,按照所提供的样本此链接下的"在网页服务JSONP"子课题.

GS代码:

function doGet(request) {
  var events = CalendarApp.getEvents(
    new Date(Number(request.parameters.start) * 1000),
    new Date(Number(request.parameters.end) * 1000));
  var result = {
    available: events.length == 0
  };
  return ContentService.createTextOutput(
    request.parameters.prefix + '(' + JSON.stringify(result) + ')')
    .setMimeType(ContentService.MimeType.JSON);
}
Run Code Online (Sandbox Code Playgroud)

HTML/JS代码:

<script src="https://script.google.com/macros/s/AKfycbwZCY0qrZ09szGvKOttA30IaJkdMAZrh_oNnvv0qzCqFWyuO5Wc/exec?start=1325437200&end=1325439000&prefix=alert"></script>
Run Code Online (Sandbox Code Playgroud)


我通过webapp使用以下参数部署GS代码来发布它:

  • 执行应用程序:用户访问Web应用程序
  • 谁有权访问该应用:任何人

不幸的是,每当我尝试运行/打开包含代码的HTML文件时,我在浏览器的控制台中出现以下错误,并且没有任何反应:

在此输入图像描述

如何在没有错误的情况下运行Google Apps脚本链接中提供的此示例?




[可选]详细调查问题:

浏览器生成的资源文件中发现的错误如下: 在此输入图像描述

浏览器翻译的DOM如下:

<html>
   <head>
       <script src="https://script.google.com/macros/s/AKfycbwZCY0qrZ09szGvKOttA30IaJkdMAZrh_oNnvv0qzCqFWyuO5Wc/exec?start=1325437200&amp;end=1325439000&amp;prefix=alert">
       </script>
   </head>
   <body></body>
</html>
Run Code Online (Sandbox Code Playgroud)

生成的链接,在我的情况是:
" https://script.google.com/macros/s/AKfycbwZCY0qrZ09szGvKOttA30IaJkdMAZrh_oNnvv0qzCqFWyuO5Wc/exec?start=1325437200&end=1325439000&prefix=alert "

如果此链接放置在浏览器地址栏中,它显示了以下信息: 在此输入图像描述

这意味着返回的授权响应无法在浏览器上显示并被转换为有效DOM.

如何克服这个问题?

javascript jsonp google-apps-script

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

SyntaxError:使用jQuery.ajax()的无效标签

我正在尝试使用以下jQuery调用对我的服务器进行Ajax 调用:

$.ajax({
    type: "GET",
    dataType: "jsonp",
    url: "http://iceworld.sls-atl.com/api/&cmd=time",
    success: function (data) {
        console.log("success");
        console.log(data);
    },
    error: function (error) {
        console.log("error");
        console.log(error);
    },
});
Run Code Online (Sandbox Code Playgroud)

我从浏览器中获取了我期望的数据,但Firebug一直说"SyntaxError:invalid label",如下所示:

标签无效

所以,让我感到困惑的是调用错误回调而不是成功的原因.我想知道我在这里做错了什么.

ajax jquery jsonp

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

AJAX 添加到 URL 字符串

我正在使用 JSONP 进行 AJAX 调用,该调用失败且没有报告原因。我们正在观察被调用的服务器上发生的情况,并看到 AJAX 正在添加到 URL,这可能会增加我们的问题。

返回的数据应该是JSON。当从浏览器调用该 URL 时,它会按预期返回,而当从页面调用以下代码时,会返回“未定义”错误,表明没有报告错误。

$.ajax({

    url: 'http://foo:8080/playlist',
    type: 'GET',
    crossDomain: true,
    dataType: 'jsonp',
    jsonp : false,
    success: function(data){

       //Writes return data to UI
        writeToUI(text.html(JSON.stringify(data)));

    },
    error: function(e){

        alert(e.message);
    }

});
Run Code Online (Sandbox Code Playgroud)

当观察服务器被调用时,我们看到 URL 现在是“ http://foo:8080/playlist?._=1449088167560 ”。

我们认为 URL 上的额外信息可能会导致 API 在服务器上失败,但想看看这是从哪里来的,以及是否有办法将其关闭?

有想法吗?

史蒂夫

ajax jquery json jsonp

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

JSONP 的 jQuery.ajax() 返回 200,但解析错误运行错误回调而不是成功回调

首先,我知道网站上有类似的帖子,但没有一个能解决我的问题。

我想从 Web 服务器获取 JSON 文件。JSON 文件已由 JSONLint 检查,因此验证语法正确。JSON 数据是从类似于以下的 URL 检索的:www.examplewebsite.com/data.json

我的 jQuery Ajax 代码:

$.ajax({

    url:url",
    dataType:"jsonp",
    contentType: "application/json",
    type:"get",
    success:function(){
        console.log("OK");
    },
    error:function(data,status,error){
        console.log(data " "status+" "+error);
    }
});
Run Code Online (Sandbox Code Playgroud)

这是错误:

:parsererror 错误:未调用 jQuery222030055767520832166_1465026956736

到目前为止我所做的:

  • 添加了回调函数(jsonpCallback:fname)(我真的想知道,如果我们必须添加回调函数来到达服务器端JSON?)函数fname可以工作(alert("OK");),但我仍然收到错误。错误消息之一是“未调用未定义”
  • 添加了 jsonp:false 选项
  • 将 dataType:jsonp 更改为 json 但出现Access-Control-Allow-Origin错误
  • 仔细检查生成的 JSON 是否有效

更新1

我的json内容(用于测试):

[{
  "id": 1,
  "first_name": "Sara"
}, {
  "id": 2,
  "first_name": "Lois"
}, {
  "id": 3,
  "first_name": "Annie"
}, {
  "id": 4,
  "first_name": "Gregory"
}, { …
Run Code Online (Sandbox Code Playgroud)

ajax jquery json jsonp

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

如何在 Angular 中测试 JSONP HTTP 请求?

我正在使用HttpClientModuleHttpClientJsonpModule在服务中发出 JSONP HTTP 请求。

app.module.ts

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { HttpClientModule, HttpClientJsonpModule } from '@angular/common/http';

import { AppComponent } from './app.component';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    HttpClientModule,
    HttpClientJsonpModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }
Run Code Online (Sandbox Code Playgroud)

此服务使用HttpClient 类中jsonp方法从指定的 URL 获取 JSONP 响应。我认为这个响应被JsonpInterceptor拦截并发送到处理请求的JsonpClientBackend

例子.service.ts

import { Injectable } from '@angular/core';
import { …
Run Code Online (Sandbox Code Playgroud)

javascript unit-testing jsonp http angular

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

如果您使用(&callback =)对受IP地址限制速率的网站进行客户端getJSON()调用,他们是否会看到您的网站或最终用户?

如果您的Web应用程序使用对外部源的Web服务API调用,则其中一些源将根据IP地址对您进行速率限制.

如果您从客户端JavaScript进行这些调用- 意味着它们是由最终用户的浏览器操作触发的 - 远程站点(发送回JSON数据)是否会看到您站点的IP地址或结尾的IP地址-user (用于此基于IP地址的速率限制)?

我的理解是,通过&callback=在数据源URL中使用,您将发出JSONP请求,这意味着远程主机看到的地址是最终用户的地址,而不是您站点的地址.

例如:

jQuery.getJSON(url+"&callback=?", function(data) {
    alert("Stock Symbol: " + data.symbol + ", Stock Price: " + data.price);
});
Run Code Online (Sandbox Code Playgroud)

如上所述的呼叫会被视为来自最终用户的IP地址而不是来自您的Web应用程序的服务器IP地址,这是否正确?

jquery json jsonp ip-address rate-limiting

2
推荐指数
1
解决办法
564
查看次数

jquery:ajax调用get jsonp不调用函数

我无法使用jquery库中的ajax调用使代码在回调中运行.代码如下:

function processJSONDirectoryFile(jsonData) {
        finished = false;
        for (var i = 0; i < jsonData.length; i++) {
                processJSONCountryFile(jsonData[i]);
        }
        finished = true;
}

function getJSON() {
  //snip

  $.ajax({url:      'http://example.org/api/rest/something',
          data:      {},
          dataType: 'jsonp',
          timeout:  10000,
          jsonp: "callback",
          jsonpCallback:  "processJSONDirectoryFile",
          });
  //snip
}
Run Code Online (Sandbox Code Playgroud)

我检查过我可以加载http://example.org/api/rest/something?callback=myfunc,并且按预期工作.我正在使用firebug在此代码中设置断点.该ajax呼叫断点被击中,但断点里面processJSONDirectoryFile是从来没有击中.

我还应该提到我正在使用jsonp我的代码在不同的域上运行,example.org所以我需要用来jsonp绕过域控制的东西.

我犯了一些明显的错误吗?

jquery jsonp

2
推荐指数
1
解决办法
4634
查看次数

我该如何解析JSON数据?

我如何在JSON数据下面解析这个数据作为我从服务器返回的数据,我想从这个json数据中提取值和标签,并且必须放在一个弹出窗口中.

例如: - 对于此数据 "application_number":"20007524.8"

我想提取application_number作为应用程序编号,并对应于应用程序编号,其值为20007524.8

有什么建议我怎么能这样做..

jsonp13082({"responseHeader":{"status":0,"Time":3,"params":{"json.wrf":"jsonp13082","wt":"json","q":"8377"}},"response":{"numFound":1,"start":0,"docs":[{"key":"83779616","number":"080","name":"Designated","name":"Non ","number":"27837","date":"2010-08-24T07:00:00Z","name":"Canada","name":"Application","title":"collision detection","date":"2008-03-03T08:00:00Z","id":"414","code":"CA","date":"2009-03-03T08:00:00Z","name":"Michael Henry","mgr_name":"abc","id":"79616","name":"oen","claims":"74","date":"2012-03-03T08:00:00Z","claims":"8","url":"","inventors":["D.","rshi","Pa"],"guid":["23","26","25"],"towners":["XYZ"],"inventors":["D","name2","name3"],"owners":["XYZ"]}]}})
Run Code Online (Sandbox Code Playgroud)

jquery json jsonp

2
推荐指数
1
解决办法
903
查看次数

如何使用jquery执行同步json ajax调用

我有以下json ajax调用:

$.getJSON(server_data.secure_api+'/e/account/check/?callback=?', queryData,
    function(data) {
        has_error = (data.status == 'failure');
});
Run Code Online (Sandbox Code Playgroud)

除了它是异步的以外,它的效果非常好.我现在需要使它同步,因为我需要暂停调用函数,直到设置has_error.我该怎么做呢?

我已经尝试过使用.ajax调用,如下所示:

jQuery.ajax({
    url:        server_data.secure_api+'/e/account/check/?callback=?',
    data:       queryData,
    DataType:   'jsonp',
    success:    function(result) {
                has_error = (data.status == 'failure');
            },
    async:      false
});
Run Code Online (Sandbox Code Playgroud)

但它不起作用!我已经尝试将DataType设置为json,jsonp或不设置; 我?callback=?试过把它包括起来,我试过把它关掉; 这一切都没有奏效.我究竟做错了什么?

javascript ajax jquery json jsonp

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