我遇到了jQuery.ajax转换器的问题 - 我无法调用我的转换器.
我有这个jQuery AJAX代码(简化问题):
$.ajax({
url: "http://myurl/myservice",
dataType: "JSONP",
cache: false,
success: function (data, textStatus, jqXHR) { /* do stuff */ },
error: function (jqXHR, textStatus, errorThrown) { /* do stuff */ },
timeout: 5000,
converters: { "JSONP": myConversionFunction }
});
Run Code Online (Sandbox Code Playgroud)
当我使用这段代码时,没有调用转换器函数myConversionFunction.我想使用转换器来转换响应中的日期,如同在其他SO问题中显示但是无法解决它.
使用fiddler我已经检查了响应,它是JSONP,内容类型为"application/x-javascript".
我有什么想法我做错了吗?
谢谢,克里斯.
我有两个域。我正在尝试通过另一个域上的页面从一个域访问 JSON 对象。我已经阅读了有关此问题的所有内容,但仍然无法弄清楚。
提供 JSON 服务的域具有以下设置:
Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Methods "GET, OPTIONS"
Header set Access-Control-Allow-Headers "origin, authorization, accept"
Run Code Online (Sandbox Code Playgroud)
从我的其他域,我调用以下内容:
$.ajax({
type:'get',
beforeSend: function(xhr) {
var auth = // authentication;
xhr.setRequestHeader("Authorization", "Basic " + auth);
}
url:myUrl,
dataType:'json',
error: function(xhr, textStatus, errorThrown) { console.log(textStatus, errorThrown); }
})
Run Code Online (Sandbox Code Playgroud)
我知道“auth”已正确初始化(记录并检查)。然而,这是行不通的。在 Firefox 的控制台中,我得到请求 URL:...
Request Method:
OPTIONS
Status Code:
HTTP/1.1 401 Authorization Required
Run Code Online (Sandbox Code Playgroud)
如果我去掉该beforeSend:...部分,我会看到以下内容
Request Method:
GET
Status Code:
HTTP/1.1 401 Authorization Required
Run Code Online (Sandbox Code Playgroud)
但是,服务 JSON 的域也可以服务 JSONP。我不想使用这个,主要是因为应用程序将在专用浏览器上不断运行,我担心这个问题。更重要的是,我真的很想知道我所做的事情到底出了什么问题。我知道出于实际目的,有多种方法可以克服 …
我在WordPress中有一个AJAX函数,它调用PHP函数来返回数据库中瞬态记录的值.
当我使用jQuery调用函数时,我收到结果,但它总是在值上附加一个额外的0(零).
这是我的jQuery函数:
(function($) {
$(document).ready( function() {
var AdvancedDashboardWidget = function(element, options)
{
var ele = $(element);
var settings = $.extend({
action: '',
service: '',
countof: '',
query: '',
callback:''
}, options || {});
this.count=0;
var url='';
switch(settings.service)
{
case 'facebook':
if(settings.countof=='likes' || settings.countof=='talks')
{
ajaxCall(action,ele,settings);
}
}
};
var ajaxCall = function(action,ele,settings){
opts = {
url: ajaxurl, // ajaxurl is defined by WordPress and points to /wp-admin/admin-ajax.php
type: 'POST',
async: true,
cache: false,
dataType: 'json',
data:{
action: settings.action …Run Code Online (Sandbox Code Playgroud) 我正在尝试从 json 中提取一些数据并使用 jquery 自动完成功能显示它们。
json 数组包含 ID、标题、日期。在显示屏上,我想显示标题和日期,单击时我想解析该标题的特定 ID。
所以目前我有:
$("input").autocomplete({
source: function (d, e) {
$.ajax({
type: 'GET',
url: url + mode + encodeURIComponent(d.term) + key,
dataType: "jsonp",
success: function (b) {
var c = [];
$.each(b.results, function (i, a, k) {
c.push(a.title + " " + a.date) // Displays Title and Date
});
e(c)
}
})
},
select: function (a, b) {
console.log(b);
// Appends an array with 2 keys: Value and Label.
// Both display the title …Run Code Online (Sandbox Code Playgroud)
$.getJSON('http://twitter.com/followers/ids.json?screen_name=/…'+ query1 + '&callback=?',
function(data) {
alert('JSON data string 1 is: '+data);
$.getJSON('http://twitter.com/followers/ids.json?screen_name=/…'+ query2 + '&callback=?',
function(data1) {
alert('JSON data string 2 is: '+data1);
f2=data1;
f1=data;
for(var i=0; i "less than" f1.length; i++)
{
for(var j=0; j "less than" f2.length; i++)
{
if (f1[i] == f2[j])
{
common[c]=f1[i];
c+=1;
}
}
}
$('#content').append(''+common.length+'');//this line is not working though.......
});
});
Run Code Online (Sandbox Code Playgroud)
在这条线上
$('#content').append(''+common.length+'');Run Code Online (Sandbox Code Playgroud)
实际上它并不显示页面挂起的输出
任何帮助将不胜感激.
谢谢
我有一个javascript在jetty服务器上执行,它正在向另一台服务器(wamp服务器)上的scoket发送XMLHTTPRequest.请求被发送到套接字,但XHR响应似乎被阻止.
我听说我可以使用JSONP来解决这个问题.然而,因为我是新手两个javascript我从来没有使用JSONP技术之前我会非常感谢如何使用这种技术的任何帮助?
function sendPost(url, postdata, callback) {
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null) {
alert ("Browser does not support HTTP Request")
return
}
xmlHttp.onreadystatechange=callback
xmlHttp.open("POST",url,true)
xmlHttp.send(postdata);
}
function sendInitRQ(width, height) {
var post = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><command type=\"init\"><width>" + width + "</width><height>" + height + "</height></command>";
sendPost("http://localhost:80/socket.php", post, initReturned);
}
Run Code Online (Sandbox Code Playgroud)
我知道php套接字正在接收帖子,因为当我检查服务器日志时,我在获取请求上得到200.
我只是想知道如何使用JSONP方法?我已经看到了该方法的示例,但我仍然不确定如何做到这一点.
有人可以显示返回JSON并支持跨域调用的HTTP处理程序的示例.我正在使用jQuery的getJSON()将请求发送到我的Web服务器上的.ashx文件.
我明白我需要添加?callback =?在getJSON()url中我的url,但我不确定在我的ashx文件中需要在服务器上做什么?
以下是我获取的数据:
jsonp1290537545248([{"Active":true,"EndDate":"\/Date(-62135578800000-0500)\ /","StartDate":"\/Date(1280635200000-0400)\ /"}]);
$.getJSON(url, {},
function (data) {
alert(data[0].EndDate);
alert(Date(data[0].StartDate));
//alert(data[0].StartDate.getDate());// + "/" + (data[0].StartDate.getMonth() + 1) + "/" + data[0].StartDate.getFullYear()); // alerts: "15/10/2008"
//var date = eval(jsonDate.replace(/\/Date\((\d+)\)\//gi, "new Date($1)"));
alert('dd ' + new Date(parseInt(data.substr(6))));
});
Run Code Online (Sandbox Code Playgroud)
我如何获得MM/DD/YYYY格式?
(
function restoreURL() {
function turnLongURL(data) {
window.location = data.url;
}
var shortUrl = window.location.href;
var url = "http://json-longurl.appspot.com/?url=" + shortUrl + "&callback=turnLongURL";
var script = document.createElement('script');
script.setAttribute('src', url);
document.getElementsByTagName('head')[0].appendChild(script);
})();
Run Code Online (Sandbox Code Playgroud)
代码在上面,但是萤火虫告诉我,turnLongURL 没有定义
这是为什么?
我试图通过使用JSONP的jQuery AJAX调用从Flickr获取一堆照片数据,但我不想立即使用这些数据.相反,我想保留它以供日后使用.在一个复杂的情况下,我想让用户对预取的数据执行不同的查询.在更简单的情况下,我想在每次用户单击按钮时加载下n个图像.
现在,我正在测试下面最基本的功能,它是根据这个问题的最佳答案改编的:JQuery - 将ajax响应存储到全局变量中
但是,检索到的JSON数据不会存储在jsonData变量中.我将alert语句调试,奇怪的是getData()警报是在回调函数中的警报之前触发的.为什么会这样?
var dataStore = ( function() {
var jsonData;
$.ajax({
type: "GET",
url: "http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?",
dataType: "json",
data: {
tags: "dog",
tagmode: "any",
format: "json"
},
success: function(data) {
jsonData = data;
alert(jsonData);
}
});
return { getData : function()
{
if (jsonData) return jsonData;
else alert("no data!");
}};
})();
var stuff = dataStore.getData();
$.each(stuff.items, function(i,item) {
$("<img/>").attr("src", item.media.m).appendTo("#images");
if ( i == 3 ) return false;
});
Run Code Online (Sandbox Code Playgroud)