我有一个foo
发出Ajax请求的函数.我怎样才能从中回复foo
?
我尝试从success
回调中返回值,并将响应分配给函数内部的局部变量并返回该变量,但这些方法都没有实际返回响应.
function foo() {
var result;
$.ajax({
url: '...',
success: function(response) {
result = response;
// return response; // <- I tried that one as well
}
});
return result;
}
var result = foo(); // It always ends up being `undefined`.
Run Code Online (Sandbox Code Playgroud) 为什么Google会while(1);
在其(私人)JSON响应前加上?
例如,这是在Google日历中打开和关闭日历时的响应:
while(1);[['u',[['smsSentFlag','false'],['hideInvitations','false'],
['remindOnRespondedEventsOnly','true'],
['hideInvitations_remindOnRespondedEventsOnly','false_true'],
['Calendar ID stripped for privacy','false'],['smsVerifiedFlag','true']]]]
Run Code Online (Sandbox Code Playgroud)
我认为这是为了防止人们eval()
对它进行操作,但你真正需要做的就是更换while
然后你就可以了.我认为eval预防是为了确保人们编写安全的JSON解析代码.
我已经在其他几个地方看到了这种情况,但谷歌(邮件,日历,通讯录等)的情况更是如此.奇怪的是,谷歌文档开始了&&&START&&&
,谷歌联系人似乎开始while(1); &&&START&&&
.
这里发生了什么?
我想用jQuery异步上传一个文件.这是我的HTML:
<span>File</span>
<input type="file" id="file" name="file" size="10"/>
<input id="uploadbutton" type="button" value="Upload"/>
Run Code Online (Sandbox Code Playgroud)
在这里我的__CODE__
代码:
$(document).ready(function () {
$("#uploadbutton").click(function () {
var filename = $("#file").val();
$.ajax({
type: "POST",
url: "addFile.do",
enctype: 'multipart/form-data',
data: {
file: filename
},
success: function () {
alert("Data Uploaded: ");
}
});
});
});
Run Code Online (Sandbox Code Playgroud)
我只获取文件名,而不是上传文件.我该怎么做才能解决这个问题?
我正在使用jQuery Form Plugin上传文件.
我正在使用jQuery 在Ajax上进行第一次破解.我将数据放到我的页面上,但是我在为Date数据类型返回的JSON数据方面遇到了一些麻烦.基本上,我得到的字符串看起来像这样:
/Date(1224043200000)/
Run Code Online (Sandbox Code Playgroud)
从全新的人到JSON - 如何将其格式化为短日期格式?这应该在jQuery代码中的某个地方处理吗?我试过使用jQuery.UI.datepicker
插件$.datepicker.formatDate()
没有任何成功.
仅供参考:以下是我提出的解决方案:
function getMismatch(id) {
$.getJSON("Main.aspx?Callback=GetMismatch",
{ MismatchId: id },
function (result) {
$("#AuthMerchId").text(result.AuthorizationMerchantId);
$("#SttlMerchId").text(result.SettlementMerchantId);
$("#CreateDate").text(formatJSONDate(Date(result.AppendDts)));
$("#ExpireDate").text(formatJSONDate(Date(result.ExpiresDts)));
$("#LastUpdate").text(formatJSONDate(Date(result.LastUpdateDts)));
$("#LastUpdatedBy").text(result.LastUpdateNt);
$("#ProcessIn").text(result.ProcessIn);
}
);
return false;
}
function formatJSONDate(jsonDate) {
var newDate = dateFormat(jsonDate, "mm/dd/yyyy");
return newDate;
}
Run Code Online (Sandbox Code Playgroud)
此解决方案从回调方法获取我的对象,并使用日期格式库正确显示页面上的日期.
我正在使用$.post()
Ajax调用servlet,然后使用生成的HTML片段替换div
用户当前页面中的元素.但是,如果会话超时,服务器会发送重定向指令以将用户发送到登录页面.在这种情况下,jQuery正在用div
登录页面的内容替换元素,迫使用户的目光确实见证了罕见的场景.
如何使用jQuery 1.2.6从Ajax调用管理重定向指令?
我需要将对象序列化为JSON.我正在使用jQuery.是否有"标准"方法来做到这一点?
我的具体情况:我有一个定义如下所示的数组:
var countries = new Array();
countries[0] = 'ga';
countries[1] = 'cd';
...
Run Code Online (Sandbox Code Playgroud)
我需要把它变成一个字符串传递给$.ajax()
这样:
$.ajax({
type: "POST",
url: "Concessions.aspx/GetConcessions",
data: "{'countries':['ga','cd']}",
...
Run Code Online (Sandbox Code Playgroud) 我有一个JavaScript小部件,它提供标准的扩展点.其中之一就是beforecreate
功能.它应该返回false
以防止创建项目.
我使用jQuery在这个函数中添加了一个Ajax调用:
beforecreate: function (node, targetNode, type, to) {
jQuery.get('http://example.com/catalog/create/' + targetNode.id + '?name=' + encode(to.inp[0].value),
function (result) {
if (result.isOk == false)
alert(result.message);
});
}
Run Code Online (Sandbox Code Playgroud)
但我想阻止我的小部件创建项目,所以我应该返回false
母函数,而不是回调.有没有办法使用jQuery或任何其他浏览器中的API执行同步AJAX请求?
自升级到iOS 6以来,我们看到Safari的Web视图可以自由地缓存$.ajax
调用.这是在PhoneGap应用程序的上下文中,因此它使用Safari WebView.我们的$.ajax
调用是POST
方法,我们将缓存设置为false {cache:false}
,但仍然会发生这种情况.我们尝试手动添加TimeStamp
标题,但它没有帮助.
我们做了更多研究,发现Safari只返回具有静态功能签名并且不会因呼叫而改变的Web服务的缓存结果.例如,想象一个名为:
getNewRecordID(intRecordType)
Run Code Online (Sandbox Code Playgroud)
该函数反复接收相同的输入参数,但每次返回的数据应该不同.
一定是苹果急于让iOS 6拉链令人印象深刻,他们对缓存设置感到满意.还有其他人在iOS 6上看到过这种行为吗?如果是这样,究竟是什么导致了它?
我们发现的解决方法是将函数签名修改为如下所示:
getNewRecordID(intRecordType, strTimestamp)
Run Code Online (Sandbox Code Playgroud)
然后总是传入一个TimeStamp
参数,并在服务器端丢弃该值.这解决了这个问题.我希望这能帮助其他一些在这个问题上花费15个小时的穷人,就像我一样!
ajax ×10
javascript ×9
jquery ×8
asynchronous ×3
json ×3
asp.net ×1
caching ×1
redirect ×1
security ×1