我理解JSON,但不了解JSONP.维基百科关于JSON的文档是JSONP的最佳搜索结果.它说:
JSONP或"带填充的JSON"是JSON扩展,其中前缀被指定为调用本身的输入参数.
咦?什么电话?这对我没有任何意义.JSON是一种数据格式.没有电话.
JSONP是脚本标记注入,将响应从服务器传递到用户指定的函数.
我可以理解这一点,但它仍然没有任何意义.
那么什么是JSONP?它为什么被创建(它解决了什么问题)?为什么我会用它?
附录:我刚刚在维基百科上为JSONP创建了一个新页面 ; 根据jvenema的回答,它现在对JSONP进行了清晰而全面的描述.
我到处都看这个.我只需要一个简单的"操作方法"拉jsonp跨域.我正在使用jQuery 1.5.1.
我在另一个网站上的程序中尝试了以下内容:
$.getJSON("http://www.mydomain.com/testjson.json?jsoncallback=?", function(data) {
alert("I'm hitting this.");
}
Run Code Online (Sandbox Code Playgroud)
这根本不起作用.
有没有办法只做一个简单的跨域jquery JSONP调用?
谢谢
我是jsonp的新手,我知道JSONP是一种创建动态 脚本src ="..." 标签的技术,它使用回调函数包装返回的javascript(或json对象).
但是如果我没有弄错的话,脚本标签中的src属性将阻止所有进一步的执行,直到脚本加载,那么它怎么能被asynchrounus调用?
我有一个名为men.json的文件.
我想做相同的var men = require('./men.json');.
无论我尝试过什么,它都会寻找./men.json.js文件.
我读到我不能使用,import因为它不是ts文件.
什么是等效的要求线?
这是一个跨域问题,但问题是浏览器(Chrome)似乎没有遵循重定向.相反,没有任何东西返回到jQuery ajax调用,我收到一个错误.
我正在尝试使用jQuery.ajax,但我正在使用的网址重定向到另一个域.发生这种情况时,我收到一个错误.是否有任何特殊需要完成,以便浏览器遵循重定向?
我已经添加access-control-allow-origin: *到重定向到的第二个域的标头中.
我面临的问题应该很容易解决,但我现在已经迷失了.
我有一个网址:http://search.twitter.com/search.json? q = bacon
使用JavaScript(不是JQuery或php.只是JavaScript),我想读取这个JSON字符串并解析它.而已.
谢谢!
我认为没有CORS问题。
为什么Webpack使用jsonp获取块脚本?
这是生成的webpackBootstrap。
/******/ // install a JSONP callback for chunk loading
/******/ var parentJsonpFunction = window["webpackJsonp"];
/******/ window["webpackJsonp"] = function webpackJsonpCallback(chunkIds, moreModules) {
/******/ // add "moreModules" to the modules object,
/******/ // then flag all "chunkIds" as loaded and fire callback
/******/ var moduleId, chunkId, i = 0, callbacks = [];
/******/ for(;i < chunkIds.length; i++) {
/******/ chunkId = chunkIds[i];
/******/ if(installedChunks[chunkId])
/******/ callbacks.push.apply(callbacks, installedChunks[chunkId]);
/******/ installedChunks[chunkId] = 0;
/******/ }
/******/ for(moduleId in moreModules) {
/******/ …Run Code Online (Sandbox Code Playgroud) 这是我的代码
$.ajax({
type: "GET",
url: "http://example.com?keyword=r&callback=jsonp",
success: function (data) {
alert(data);
},
dataType: "jsonp",
error: function (xhr, errorType, exception) {
var errorMessage = exception || xhr.statusText;
alert("Excep:: " + exception + "Status:: " + xhr.statusText);
}
});
Run Code Online (Sandbox Code Playgroud)
好吧所以上面的代码工作正常,我得到一个数据为jsonp.Now我无法弄清楚如何将jsonp转换为json.
我知道已经有人回答了,但我不明白如何解决我的问题。我正在使用 webpack 4 开发静态网站,并且在尝试加载图像(本地和从我的在线服务器)时遇到问题。
Access to XMLHttpRequest at 'XXX' from origin 'http://localhost:8080' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource使用 webpack 时如何修复错误?我没有使用 express(仍在学习 webpack),而且我发现的所有答案对我来说都有些复杂,并且使用了自定义服务器,而我不...
有没有简单的方法可以绕过这个?
顺便说一句,我正在使用<img src="XXX" alt="" crossorigin="anonymous">我的图像。有时它有效,有时它不起作用......我发现的文章在这一点上对我来说太技术性了......
我试图将以下内容添加到我的webpack.config.dev.js文件中,但它也不起作用:
devServer: {
headers: {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, PATCH, OPTIONS',
'Access-Control-Allow-Headers': 'X-Requested-With, content-type, Authorization',
},
(...)
}
Run Code Online (Sandbox Code Playgroud) 花了几个小时试图解决这个问题,但不能为我的生活弄清楚出了什么问题.
我要做的就是加载这个:
https://recruit.zoho.com/ats/EmbedResult.hr?jodigest=2cV.Sr2As6VxhLMxQGuTNij*g.Fb3J7ysduDs.AC9sU-&atslocale=en_GB&rawdata=json
Run Code Online (Sandbox Code Playgroud)
我认为是json,javascript/jquery或php并使用数据.
我查看了jsonp,接下来的一些教程,使用了一些演示作为模板,只是无法获得上述数据.
如果有人可以解决一些问题,我将不胜感激.这真的不应该是这么复杂,但我不知道出了什么问题.
我试图通过下面的代码解码这个json数据,但是它不起作用.
$data = 'VA_OnQueryData({"name":"John","id":"354902332592"});';
return json_decode($data);
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用声称返回JSON的Web服务,但实际上总是返回JSONP.我没有看到改变该服务行为的方法.
我想用NewtonSoft Json.Net来解析结果.我已经声明了一个类,我们将其称为MyType,我想将内部JSON结果反序列化为.
JSONP:
parseResponse({
"total" : "13,769",
"lower" : "1",
"upper" : "20"})
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,这不是正确的JSON,因为它具有parseResponse(前缀和)后缀.虽然这个例子非常简单,但实际响应可能很长,大约为100K.
我的风格:
public class MyType
{
public Decimal total;
public int lower;
public int upper;
}
Run Code Online (Sandbox Code Playgroud)
在我将Web服务响应转换为流和JsonTextReader之后,我尝试反序列化,如下所示:
(MyType)serializer.Deserialize(jsonTextReader, typeof(MyType));
Run Code Online (Sandbox Code Playgroud)
当然,我得到null的结果,因为有圆括号的那个讨厌的parseResponse.
我看过这个问题,遗憾的是没有帮助.我实际上是使用a JsonTextReader来输入JSON而不是字符串(并且更喜欢这样以避免创建巨大字符串的性能).即使我使用该问题的建议,它看起来很危险,因为它使用全局替换.如果没有好的方法来使用流,那么安全解析字符串的答案就可以了.
javascript ×7
json ×7
jsonp ×7
jquery ×4
cross-domain ×3
ajax ×2
php ×2
asynchronous ×1
c# ×1
cors ×1
json.net ×1
jsondecoder ×1
security ×1
terminology ×1
typescript ×1
url ×1
webpack ×1