标签: jsonp

Chrome现在阻止从https到http的所有jsonp请求?

最近,Chrome已停止显示通过jsonp加载的数据并显示错误

[已屏蔽] https://user.example.com/category/12345上的页面运行了来自http://livedata.example.com/Data.svc/jsonp/GetData?category=12345&callback=_jsp&_1346417951424=的不安全内容.

它仍适用于所有其他浏览器,并已在运行Chrome的几台不同计算机上得到确认.

我之前看到过这个问题的唯一提法是,该页面是从Google自己的某个域提供的(我猜是Google Apps的安全功能吗?),这是现在在最新版本中已在所有域上启用的内容Chrome?

理想情况下,我们不希望在我们的livingata子域上启用https,因为它会导致额外的服务器负载,数据全部公开,因此没有迫切需要加密它.

security https jsonp google-chrome securitydomain

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

Jquery成功函数不使用JSONP触发

正在做一些使用jQuery调用我在不同域上的服务.成功调用服务(我的调试点被触发),并返回正确的响应(我嗅探流量).

我的问题主要是成功和失败的回调不会被解雇.我已经在SO上阅读了一些其他帖子,表明在使用JSONP时没有触发错误事件.这是成功事件的情况(也许是因为我假设我提供自己的回调函数),或者有没有办法解雇我的成功回调.提前致谢.

$.ajax({
  type: "GET",
  url: urlOnDiffDomain,
  async: false,
  cache: false,
  dataType: 'jsonp',
  data: {},
  success: function(data, textStatus) {
    alert('success...');
  },
  error: function(xhr, ajaxOptions, thrownError) {
   alert('failed....');
  }
}); 
Run Code Online (Sandbox Code Playgroud)

javascript jquery jsonp

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

修改JSONP请求的HTTP标头

我正在使用jquery来构建对Twitter Search API的请求.我正在使用jsonp,这是跨域请求所需要的.但是,Twitter API指定您应为这些请求设置唯一的User-Agent,如果不这样做,则会限制您的请求.问题是,我认为无法通过jquery设置此标头.

这是我正在使用的代码:

$.ajax({
    url: 'http://search.twitter.com/search.json',
    dataType: 'jsonp',
    type: 'get',
    data: { q: 'twitter' },
    success: function(data) {
        alert(data.results);
    }
});
Run Code Online (Sandbox Code Playgroud)

我尝试过使用beforeSend方法,但看起来这个事件没有被触发.任何人都可以想出任何解决这个问题的方法吗?

谢谢.

jquery user-agent jsonp http-headers

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

使用JsonP的JavaScript XMLHttpRequest

我想将请求参数发送到其他域

我已经知道Cross Scripting需要JsonP,我已经将JsonP与Jquery ajax一起使用了

但我不知道如何使用XMLHttpRequest进行Cross Scripting

下面的代码我的基本XMLHttpRequest代码.

我想我需要chage xhr.setRequestHeader(),我必须添加解析代码

请给我任何想法

var xhr;
function createXMLHttpRequest(){    
    if(window.AtiveXObject){
        xhr = new ActiveXObject("Microsoft.XMLHTTP");
    }else{
        xhr = new XMLHttpRequest();
    }   
    var url = "http://www.helloword.com";   
}

function openRequest(){ 
    createXMLHttpRequest();
    xhr.onreadystatechange = getdata;
    xhr.open("POST",url,true);
    xhr.setRequestHeader("Content-Type",'application/x-www-form-urlencoded');
    xhr.send(data); 
}

function getdata(){
    if(xhr.readyState==4){
        if(xhr.status==200){
            var txt = xhr.responseText;
            alert(txt);
        }
    }   
}
Run Code Online (Sandbox Code Playgroud)

javascript ajax jsonp

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

为什么跨域JSONP安全,但跨域JSON不是?

我在连接最近学过JSONP的点时遇到了麻烦.这是我的理解:

  • 由于相同的原始策略,禁止任何内容(包括JSON)的跨域XmlHttpRequests.这可以防止XSRF.
  • 你被允许有一个带有src的脚本标签,它返回JSONP - 在调用Javascript函数(比如说'Foo')中填充了一些JSON
  • 您可以在返回JSONP数据时调用的页面上执行'foo',并且可以使用传递函数的JSON数据执行操作

如果它是通过JSONP接收的,那么为什么接收跨域数据是可以的,但如果它来自JSON则不行?

是否存在JSON容易允许XSRF但JSONP不允许的假设?如果是这样的话,除了JSONP之外,还有其他任何理由不能提供支持XSRF的数据 - 事实上的数据格式吗?为什么JSONP而不是XML上的一些任意根标记呢?

提前感谢您的回答,请在未能弄清楚这一点之后让我的大脑再次运作.

jsonp cross-site same-origin-policy

26
推荐指数
2
解决办法
4821
查看次数

JSONP和Backbone.js

我想将Backbone.js与我控制的REST api一起使用.我希望将REST api和Backbone脚本存放在不同的域中,但不幸的是,这将被阻止,因为它是一个跨域请求.

Backbone.js是否具有支持JSONP请求的内置功能?或者,有没有人有任何手动向Backbone.js sync系统添加JSONP支持的经验?

javascript json jsonp backbone.js

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

使用JQuery ajax的JSONP的回调函数

我不太明白如何使用JQuery的ajax函数的回调.

我在JavaScript中有以下代码:

try {
    $.ajax({
        url: 'http://url.of.my.server/submit?callback=?',
        cache: false,
        type: 'POST',
        data: $("#survey").serialize(),
        dataType: "jsonp",
        timeout: 200,
        crossDomain: true,
        jsonp: 'jsonp_callback',
        success: function (data, status) {
            mySurvey.closePopup();
        },
        error: function (xOptions, textStatus) {
            mySurvey.closePopup();
        }
    });
} catch (err) {
    mySurvey.closePopup();
}
Run Code Online (Sandbox Code Playgroud)

在服务器端(AppEngine/Python),我得到回调参数的值并回复

self.response.headers['Content-Type'] = 'application/json; charset=utf-8'
self.response.out.write(callback + '({"msg": "ok"});')
Run Code Online (Sandbox Code Playgroud)

但后来我"Error: jQuery152042227689944248825_1317400799214 is not a function"在浏览器上得到了一个.

处理这个问题的正确方法是什么?现在我得到了我需要的结果,但事实上,我知道这是不对的困扰我.

javascript ajax jquery jsonp

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

如何从github API解析链接头

github API在http链接头中发送json结果的分页数据:

Link: <https://api.github.com/repos?page=3&per_page=100>; rel="next",
<https://api.github.com/repos?page=50&per_page=100>; rel="last"
Run Code Online (Sandbox Code Playgroud)

因为github API不是唯一使用这种方法的API(我认为)我想问一下是否有人有一个有用的小片段来解析链接头(并将其转换为数组),以便我可以将它用于我的js app.

我搜索了一下,但没有发现如何从json API解析分页

javascript json jsonp github github-api

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

哪些浏览器允许使用Access-Control-Allow-Origin进行跨域ajax调用:*?

哪些浏览器允许跨域ajax调用Access-Control-Allow-Origin: *?我正在设置REST服务并尝试确定是否需要支持JSONP以允许跨域javascript访问,或者它是否足以设置Access-Control-Allow-Origin标头.

javascript ajax rest jsonp

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

Angular 2将JSON对象解析为角度类

我一直在关注Angular2入门文档,让我自己的应用程序开始,我已经成功地从本地文件中检索JSON对象并在angular2模板中显示它们.但是目前它依赖于与我的JSON文件中的对象结构完全匹配的角度类.

最终我需要我的应用程序使用JSON-LD,它具有诸如"@id"的属性名称.我做了一些谷歌搜索,似乎RxJS可能有我正在寻找的功能,但我不知道从哪里开始中断自动绑定从一些JSON数据直接到我的angular2类,而是能够看到在json中标记为"@id"的东西并设置SomeClass.id的值

当前代码自动生成Person类的数组:

getPeople(){
    return this._http.get(this._peopleUrl)
        .map(response => <Person[]> response.json().data)
        .do(data => console.log(data)) //debug to console
        .catch(this.handleError);
} 
Run Code Online (Sandbox Code Playgroud)

这样的JSON很好:

[
 {
  "id":"1",
  "name":"tessa"
 },
 {
  "id":"2",
  "name":"jacob"
 }
]
Run Code Online (Sandbox Code Playgroud)

但是对于这样的JSON来说显然会失败:

[
 {
  "@id":"1",
  "name":"tessa"
 },
 {
  "@id":"2",
  "name":"jacob"
 }
]
Run Code Online (Sandbox Code Playgroud)

我的课很简单(目前:-))

export class Person {
  constructor(
    public id:number,
    public name:string,
  ){}
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以指出我正确的方向为一些文件/例子将复杂/棘手的json映射到angular2中的类?

json jsonp typescript angular

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