使用mootools和JsonP我在Firefox错误控制台中出现"无效标签"错误
JsonP似乎工作(我正确获取数据)
{"jsondata":[{"title":"title1","link":"http://xxxx.xxx.xxx","thumbsrc":"http://xxxx.xxx.xxx/17_t.jpg" ,"description":".......","pubDate":"2009-03-09 06:26:00",},{"title":"title2","link":"http://xxxx.xxx.xxx","thumbsrc":"http://xxxx.xxx.xxx/16_t.jpg" ,"description":".......","pubDate":"2009-03-09 06:08:09",}]}
Run Code Online (Sandbox Code Playgroud)
但我在"jsondata"上收到无效标签错误
同一个文件适用于request.json
逗号删除了...没有
这是我正在使用的代码
window.addEvent('domready',function(){
var gallery = $('gallery');
new JsonP('http://myjsoncodeurl',{
onComplete: function(jsonObj) {
addImages(jsonObj.jsondata);
}
}).request();
var addImages = function(images) {
images.each(function(image) {
var el = new Element('div', {'class': 'item'});
var name = new Element('h3').inject(el);
var a1 = new Element('a', {'href': image.link,'html': image.title}).inject(name);
var desc = new Element('span', {'html': image.description}).inject(name, 'after');
var a2 = new Element('a', {'href': image.link}).inject(desc,'after');
var img = new Element('img', {'src': image.thumbsrc}).inject(a2);
el.inject(gallery);
});
};
Run Code Online (Sandbox Code Playgroud)
});
它适用于普通的request.Json,但JSONP不喜欢我的代码:(
我正在$.getJSON向另一个域发出jQuery 请求,所以我确保我的GET URI以"callback =?"结尾 (即使用JSONP).
Firebug的NET面板显示我正在按预期接收数据,但由于某种原因,控制台面板记录以下错误:"无效标签".
JSON使用JSONLint进行验证,因此我怀疑数据结构是否存在任何真正的错误.
我可能会收到此错误的任何想法?
我user1.mydomain.com和user2.mydomain.com领域.我用api.mydomain.comAJAX/JSON处理我的网络应用程序.所以,我想发一个POST请求user1.mydomain.com来api.mydomain.com/projects使用像这样的jquery:{'action':'getActiveProjects'}得到结果的JSON中user1的活动项目列表.我找到了$.getJSON方法,但似乎没有选择将一些数据发送到服务器,只有GET方法.我面临的另一个问题是同一起源政策.那么,如何将一些JSON发布到另一个子域上的服务器并获得JSON响应呢?
这是我在Stackoverflow上的第一篇文章,虽然多年来我一直是常客!
我们有一个用ASP编写的内部缺陷跟踪应用程序.我们有一个手动过程,我们将所有相关的Rally User故事信息复制到我们网站的"规格"部分.我试图通过使用JQuery和JSON在我们的网站中动态显示此信息.在我在ASP页面中使用它之前,我正在使用XAMPP在我的本地计算机上测试它.
尝试通过JQuery访问API时,我遇到了Access-Control-Allow-Origin异常.我试图加载的示例页面是:https://rally1.rallydev.com/slm/webservice/1.26/project.js.
这是代码:
<script>
$(document).ready(function(){
$.getJSON("https://rally1.rallydev.com/slm/webservice/1.26/project.js",
function(data) {
$.each(data.QueryResult.Results, function(i, result) {
$("<option>").attr("value", result._refObjectName).text(result._refObjectName).appendTo("#dd_ItSel");
});
})
.success(function() {console.log("dd-It-success"); })
.error(function() { console.log("dd-It-error");})
.complete(function() { console.log("dd-It-complete"); })
;
});
</script>
Run Code Online (Sandbox Code Playgroud)
这将加载到以下下拉列表中:
<select name="projectSelect" id="dd_projSel"></select>
Run Code Online (Sandbox Code Playgroud)
根据Rally API文档https://rally1.rallydev.com/slm/doc/webservice/rest_json.jsp中的此页面,为了绕过此限制,我们应该使用HTTP代理或使用JSONP回调功能.我尝试在我的页面()中包含Yahoo API,并尝试使用Rally API示例页面上显示的一些代码,但是无法使其工作.
This page uses the YUI Connect method to submit an asyncrounous request against the JSON REST API. A JavaScript function is used in the request callback to render the object graph below.
var graphContainer = …Run Code Online (Sandbox Code Playgroud) 我已配置extjs store来加载来自useragentstring.com api的数据,这个api返回这样的数据
{"agent_type":"Browser","agent_name":"Opera","agent_version":"9.70","os_type":"Linux","os_name":"Linux","os_versionName":"","os_versionNumber":"","os_producer":"","os_producerURL":"","linux_distibution":"Null","agent_language":"English - United States","agent_languageTag":"en-us"}
Ext.define('Oms.model.Userinfo', {
extend : 'Ext.data.Model',
fields : ['agent_type', 'agent_name', 'agent_version', 'os_type', 'os_name']
});
Ext.define('Oms.store.Userinfo', {
extend : 'Ext.data.Store',
model : 'Oms.model.Userinfo',
proxy: {
type : 'jsonp',
reader : {
type: 'json',
root: ''
}
}
});
Run Code Online (Sandbox Code Playgroud)
这个商店抛出一个错误

也许这是因为这个json中没有root?
任何想法如何正确读取此输出和加载存储?
问候
我将我的php导出为jsonp,然后调用加载数据的js文件.
我只得到最后一个数据对象的输出.我想循环遍历操作数据,并将所有输出都转换为<li> data.action </ li>格式.如果有人能帮忙解决这个问题,那么非常感谢你.
JSONP
({
"posts": [{
"action": "go to acting school",
"action": "go to a beach",
"action": "go kyacking",
"action": "go skiing in vermont",
"action": "sleep in a cave",
"action": "dress up as favorite celebrity in public",
"action": "see the cherry blossums in Washington DC",
"action": "watch all the rocky movies",
"action": "go sky diving",
"action": "climb Mount Everest",
"action": "climb K2",
"action": "see or participate in war reenactment",
"action": "spend New Years Eve in …Run Code Online (Sandbox Code Playgroud) 我正在尝试在AngularJS中获取rest api的JSON输出.以下是我面临的问题:
我的休息api看起来像:http://myserver.com:8888/dosomething/me@mydomain.com/arg2.示例代码/文档将非常有用.
当我进行ajax调用时,我遇到了问题.
我的代码是:
$('#regLink').click(function(event){
event.preventDefault();
urlLink = $('#regLink').attr('name') + $('input[name="email"]').val();
$.ajax({
type: 'GET',
dataType: 'jsonp',
jsonpCallback: 'callback',
url: urlLink,
success: function (xml) {
var code = $(xml).find('int').text();
if(code == '1') {
console.log('email gravado com sucesso');
}
else {
console.log('algo correu mal');
}
}
});
});
Run Code Online (Sandbox Code Playgroud)
电话给出了这个回复:
<?xml version="1.0" encoding="utf-8"?>
<int xmlns="http://tempuri.org/">1</int>
Run Code Online (Sandbox Code Playgroud)
它给了我这个错误:
Uncaught SyntaxError: Unexpected token <
Run Code Online (Sandbox Code Playgroud)
URL指向另一个站点,因此它是跨域调用.
我只想阅读"1"并给出成功警报.
希望您能够帮助我.
谢谢
我经常搜索,无法弄清楚我错过了什么.
我正在尝试在ajax调用中发送标头:
$.ajax({
type: "GET",
url: url,
dataType: 'jsonp',
headers: { "Authorization": "98765", "X-My-Secret-Token": "WhyCantIGetThis", "JustAnotherTest": "314987" },
//beforeSend: function (request) {
// request.setRequestHeader("Authorization", "98765"); -> I tried this way too
//},
success: function (data) {
$('#value1').html(data);
}
})
Run Code Online (Sandbox Code Playgroud)
得到它:
public override void OnActionExecuting(HttpActionContext actionContext)
{
var header_X_My_Secret_Token = actionContext.Request.Headers.SingleOrDefault(x => x.Key == "X-My-Secret-Token");
var header_Authorization = actionContext.Request.Headers.SingleOrDefault(x => x.Key == "Authorization");
var header_JustAnotherTest = actionContext.Request.Headers.SingleOrDefault(x => x.Key == "JustAnotherTest");
var heeder_Authorization2 = actionContext.Request.Headers.Authorization;
}
Run Code Online (Sandbox Code Playgroud)
但它全都是空的.有谁能告诉我为什么?谢谢.[编辑]
我可以在同一域ajax调用中获取标头.但我也需要在跨域中获取它.怎么样?谢谢
我正在使用Yii2,为了它的价值,我知道基础知识,并且已经编程了一段时间.这可能是因为该领域缺乏文档(Yii2 JSONP和Responses).我找到的只是返回JSON响应的示例,没有显示JSONP响应.
我从这里开始,Yii Cookbook:https: //github.com/samdark/yii2-cookbook/blob/master/book/response-formats.md
它仅显示JSON和XML的示例,但不显示JSONP.它声明使用FORMAT_JSONP.所以我用JSONP交换了JSON示例.没有,只是一个空白的白页.所以我var_dump()数据,是的数据就在那里!
因此,搜索谷歌搜索"yii2 jsonp","yii2 jsonp错误","yii2 jsonp无法正常工作",以及其他一些变化,我什么也没找到.我在这里搜索了SO,只有2个问题出现了"yii2 jsonp",都没有任何帮助.
我继续学习Yii2文档.这里:http://www.yiiframework.com/doc-2.0/guide-runtime-responses.html
同样,没有JSONP的例子,除了FORMAT_JSONP有效的格式类型之外没有太多谈论它...
我可以很好地使用JSON,但是我试图使用JSONP响应中的数据填充Google Map,因此我需要JSONP.
这是我的控制器:
public function actionMapapi()
{
\Yii::$app->response->format = \yii\web\Response::FORMAT_JSONP;
$data = User::find()->all();
return $data;
}
Run Code Online (Sandbox Code Playgroud)
当我转到URL时,它只是白色.我可以在声明response->格式之前放置一个骰子('here'),并在页面上打印"here".所以控制器正在被访问就好了.如果我换FORMAT_JSONP用FORMAT_JSON它完美的作品,它只是不JSONP.
似乎在如何在Yii2文档中准确处理JSONP方面存在差距,而在线讨论它并不多(我可能会发现).