最近,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,因为它会导致额外的服务器负载,数据全部公开,因此没有迫切需要加密它.
正在做一些使用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) 我正在使用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方法,但看起来这个事件没有被触发.任何人都可以想出任何解决这个问题的方法吗?
谢谢.
我想将请求参数发送到其他域
我已经知道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) 我在连接最近学过JSONP的点时遇到了麻烦.这是我的理解:
如果它是通过JSONP接收的,那么为什么接收跨域数据是可以的,但如果它来自JSON则不行?
是否存在JSON容易允许XSRF但JSONP不允许的假设?如果是这样的话,除了JSONP之外,还有其他任何理由不能提供支持XSRF的数据 - 事实上的数据格式吗?为什么JSONP而不是XML上的一些任意根标记呢?
提前感谢您的回答,请在未能弄清楚这一点之后让我的大脑再次运作.
我想将Backbone.js与我控制的REST api一起使用.我希望将REST api和Backbone脚本存放在不同的域中,但不幸的是,这将被阻止,因为它是一个跨域请求.
Backbone.js是否具有支持JSONP请求的内置功能?或者,有没有人有任何手动向Backbone.js sync系统添加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"在浏览器上得到了一个.
处理这个问题的正确方法是什么?现在我得到了我需要的结果,但事实上,我知道这是不对的困扰我.
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解析分页
哪些浏览器允许跨域ajax调用Access-Control-Allow-Origin: *?我正在设置REST服务并尝试确定是否需要支持JSONP以允许跨域javascript访问,或者它是否足以设置Access-Control-Allow-Origin标头.
我一直在关注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中的类?
jsonp ×10
javascript ×6
ajax ×3
jquery ×3
json ×3
angular ×1
backbone.js ×1
cross-site ×1
github ×1
github-api ×1
http-headers ×1
https ×1
rest ×1
security ×1
typescript ×1
user-agent ×1