由于某种原因,我无法从返回的jsonp字符串中获取信息,
<?php
// Created by Talisman 01/2010 ??
$vorto = $_GET['vorto']; // Get the Word from Outer Space and Search for it!
if (isset($vorto))
{
echo $vorto;
} else {
$Help = "No Vorto -> add ?vorto=TheWordYouWant to the end of this website";
echo $Help;
}
// Now Lets Search Alex's Vortaro, It uses jsonp
// ex. http://vortaro.us.to/ajax/epo/eng/petas/?callback=?
// Future Feature inproved language functinality
$AVurl1 = "http://vortaro.us.to/ajax/epo/eng/";
$AVurl2 = "/?callback=";
$AVfinalurl= $AVurl1 . $vorto . $AVurl2;
echo $AVfinalurl . ' …Run Code Online (Sandbox Code Playgroud) $.ajax(
{
url : "http://search.twitter.com/search.json?q=google&lang=en&rpp=10&since_id=&callback=?",
dataType : 'json',
success : function(data)
{
alert(data.results.length);
}
});
Run Code Online (Sandbox Code Playgroud)
这究竟是如何工作的?我指的是跨域请求.
我正在使用Jquery 1.6.2.
这有效:
$.getJSON("http://b.webvm.net/?jsoncallback=?",
function(data) {
alert("OK");
});
});
Run Code Online (Sandbox Code Playgroud)
但这不是:
$.getJSON("http://isp123.co.uk/cw/NorthWales/test.txt?jsoncallback=?",
function(data){
alert("OK");
});
});
Run Code Online (Sandbox Code Playgroud)
两个远程文件看起来都相同
http://b.webvm.net/?jsoncallback=?
和
http://isp123.co.uk/cw/NorthWales/test.txt?jsoncallback=?
但是警告消息永远不会在第二个示例中被触发.
我似乎无法找到一个明确的答案 - pJSONP代表什么?我到目前为止找到的候选人是padding和prints.有谁知道JSONP名称的来源?
我正在开发一个REST客户端,它将与名为attask的项目管理服务进行通信.
他们的REST API很方便,因为它返回了易于在我的代码中使用的简单JSON.因此我决定用jQuery构建接口.我很快发现由于同源策略,我不能将我的站点中的AJAX用于Attask API .
我的第一个想法是使用RESTSharp开发服务器端休息客户端,它将充当我的javascript和Attask API之间的桥梁.
在我开始使用该实现之前,我发现了JSONP.这对我来说是新的.事实证明,Attask API支持JSONP.jQuery原生支持JSONP所以我突然回到制作一个完整的jQuery接口而不需要服务器端干预.
我的问题是,有没有理由不使用JSONP?为了更进一步,构建服务器端REST客户端和使用真正的AJAX调用会有什么好处吗?
任何人都可以告诉我如何使用jquery中的ajax调用为跨域jsonp调用添加自定义标头.我使用ajax跨域调用在html页面中调用webservice.for使用jsonp,现在我必须在标头中发送一些参数所以我如何设置标题.
我尝试在AngularJS中使用JSONP请求发送数据.
$http({ method: 'jsonp',
url: 'http://test.local/?callback=JSON_CALLBACK', /// Add '?callback=JSON_CALLBACK'
data: JSON.stringify(request) })
.success(function (data, status, headers, config) { });
Run Code Online (Sandbox Code Playgroud)
这可能吗?
我正在检索API的JSON信息,它在API上说它是JSON但我注意到它是在JSONP或"带有填充的json"中,有些人称之为.我厌倦了到处寻找如何解析这个,但没有运气.我想收到的信息是这样的:
({"book":[{"book_name":"James","book_nr":"59","chapter_nr":"3","chapter":
{"16":{"verse_nr":"16","verse":"For where envying and strife is, there is confusion and
every evil work."}}}],"direction":"LTR","type":"verse"});
Run Code Online (Sandbox Code Playgroud)
数据的链接是 https://getbible.net/json?p=James3:16,所以你可以直接看一下.
这是我用来尝试检索JSON数据并将其解析为NSMutableDictionary的代码.
-(void)fetchJson {
NSString *currentURL = [NSString stringWithFormat:@"https://getbible.net/json?p=James"];
NSURL *url = [NSURL URLWithString:currentURL];
NSData *data = [[NSData alloc]initWithContentsOfURL:url];
NSURLRequest *theRequest = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:60];
NSMutableData *receivedData = [[NSMutableData alloc] initWithLength:0];
NSURLConnection * connection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self startImmediately:YES];
[receivedData setLength:0];
NSURLResponse *response = [[NSURLResponse alloc] initWithURL:url MIMEType:@".json" expectedContentLength:-1 textEncodingName:nil];
expectedTotalSize = [response expectedContentLength];
if ([data length] !=0) {
NSLog(@"appendingData");
[receivedData …Run Code Online (Sandbox Code Playgroud) 我正在使用JSONP将数据从发送otherdomain.com到mydomain.com
但是,当我尝试在django控制器(views.py)中解析JSONP数据时,我遇到了错误。
这是我的代码。
mydomain.com客户端页面中的Javascript
jsonData = {
'foo': 'bar',
}
$.ajax({
url: 'http://otherdomain.com/end_point/',
type: 'GET',
contentType: 'application/json; charset=utf-8',
data: jsonData,
dataType : 'jsonp',
jsonp : 'callback'
});
Run Code Online (Sandbox Code Playgroud)
中的Django控制器(views.py)mydomain.com
from django.http import JsonResponse
import json
def decode_jsonp(request):
if 'callback' in request.GET:
json_object = json.loads(request.body) # Raise error
json_object = json.dumps(request.body) # Do not raise error but returns nothing
json_object = json.loads(json.dumps(request.body)) # Raise error
foo = …Run Code Online (Sandbox Code Playgroud) 想象一下JSON(, instead of :)中的以下语法错误:
[
{
"name": "anna",
"email": "anna@gmail.com",
"town", "london"
},
...
]
Run Code Online (Sandbox Code Playgroud)
我想知道是否有可能处理此错误而不是获取异常,获取错误的对象,更正错误并继续使用正确的版本.
这是我的Angular服务的一部分; 我试图获取文本而不是JSON数据,但它不起作用......
angular.module('mine', [])
.config(function($sceProvider) {
// Completely disable SCE.
$sceProvider.enabled(false);
})
.config(['$sceDelegateProvider', function($sceDelegateProvider) {
$sceDelegateProvider.resourceUrlWhitelist([
'self',
'http://www.mocky.io/v2/5807df4a10000004122b74e2'
]);
}])
.config(function ($httpProvider) {
$httpProvider.interceptors.push(function($q) {
return {
'request': function(config) {
config.headers.Accept = 'text/plain';
return config;
},
'response': function(response) {
try {
// try to parse it
response.data = JSON.parse(response.data);
} catch (ex) {
// try to fix it
console.log("error " + ex); …Run Code Online (Sandbox Code Playgroud) jsonp ×10
jquery ×4
javascript ×3
json ×3
angularjs ×2
acronym ×1
ajax ×1
c# ×1
cross-domain ×1
django ×1
html ×1
ios ×1
objective-c ×1
parsing ×1
php ×1
python ×1
rest ×1
terminology ×1