我刚开始使用Fiddler 2来创建我一直在创建的基于REST,JSON和SOAP的服务的请求对象.到目前为止,它运作良好.
当我尝试通过Internet Explorer使用我的一些公司资源时出现问题.我得到某种DNS错误,我意识到这是因为我的代理设置每次打开小提琴(IE6和IE8)时都被擦除了.有谁知道Fiddler可能在这里"摆弄"会导致这样一个奇怪的问题.
更多信息:这是在运行Windows XP的Virtual PC VM上发生的.正在消隐的确切内容位于工具 - > Internet选项 - >连接 - >局域网设置窗口中.选中了两个复选框,并填充了"高级"窗口中的字段.之后,所有人都被清空了.
我想在出现AJAX错误时提醒用户.你可以这样做$.ajaxSetup:
$.ajaxSetup({
error: function() {
alert("OOPS!")
}
});
Run Code Online (Sandbox Code Playgroud)
注意:全局回调函数应该使用它们各自的全局Ajax事件处理程序方法设置 - .ajaxStart(),. ajaxStop(),. ajaxComplete(),. ajaxError(),. ajaxSuccess(),. ajaxSend() - 而不是在$ .ajaxSetup()的设置对象.
所以我想我应该这样做:
$("#some_random_div").ajaxError(function() {
alert("OOPS!")
});
Run Code Online (Sandbox Code Playgroud)
这对我来说没有意义:AJAX错误回调与我的应用程序整体有关,而不是特定的页面元素.那么为什么回调函数应该与单个页面元素相关联?
那么:为什么jQuery文档建议使用看起来不太可读的方法,哪种方法最好?
是否有内置函数可以让我计算(mod n)的模逆?例如19 ^ -1 = 11(mod 30),在这种情况下19 ^ -1 == -11 == 19;
我有以下代码用于默认的jQuery AJAX错误处理:
$.ajaxSetup({
error : function(jqXHR, textStatus, errorThrown) {
alert("Error: " + textStatus + ": " + errorThrown);
},
statusCode : {
404: function() {
alert("Element not found.");
}
}
});
Run Code Online (Sandbox Code Playgroud)
然而,当404发生时,BOTH函数被上调:第一个错误,然后是statusCode,所以我看到2个连续的警报.
如果statusCode没有被提升,如何防止这种行为并获得错误回调?
当我将多个RewriteCond链接在一起时,只能使用%0- 引用最后一个RewriteCond的捕获组%9.
在以下问题中,url的查询字符串中的参数可以是任何顺序.要将它们解析为花哨的URL,我需要单独匹配查询字符串中的每个参数:
RewriteCond %{QUERY_STRING} param1=([^&]+)
RewriteCond %{QUERY_STRING} param2=([^&]+)
RewriteCond %{QUERY_STRING} param3=([^&]+)
RewriteRule ^foo$ bar/%1/%2/%3/ [R]
Run Code Online (Sandbox Code Playgroud)
就像我指出的......这不起作用.为了解决这个问题,我可以在下一个RewriteCond中引用前一个RewriteCond的捕获组,并将每个参数"传播"到实际的RewriteRule:
RewriteCond %{QUERY_STRING} param1=([^&]+)
RewriteCond %1&%{QUERY_STRING} ^([^&]*)&.*param2=([^&]+)
RewriteCond %1&%2&%{QUERY_STRING} ^([^&]*)&([^&]*)&.*param3=([^&]+)
RewriteRule ^foo$ bar/%1/%2/%3/ [R]
Run Code Online (Sandbox Code Playgroud)
这应该有效,但是对于每个额外的参数,它变得更加混乱.另一个解决方案可能是解析一个参数并在每个参数之后重定向客户端(导致冗长的重定向链,我想避免).
是否有更简洁的方法来访问RewriteRule中所有RewriteCond的捕获组(例如,是否可以命名它们或将它们分配给变量,以便我可以在其他地方引用它们?)
是否有一个开源软件包实现了"假的Amazon EC2"端点?具体来说,一个可用于测试与EC2通信的客户端(特别是使用boto)?
我知道有几个实现EC2 API的开源云解决方案(例如,OpenStack,Eucalyptus,CloudStack),但我正在寻找能够快速启动虚假EC2服务器并使用预设响应配置它的东西.测试目的.
如果我输入参数,我没有成功/错误/完成回调,但Fiddler显示200响应,我的请求的json数据就在那里. 这是关键.Fiddler显示往返是成功的,所请求的数据在客户端并且处于良好状态. 问题是骨干成功/失败/完成未调用.只是得到一个大的东西.
使用完全相同的基本URL,如果我将参数取出(并将其从我的Web服务中并行删除),则会触发成功和完成.下面是我的获取"with"参数:
myModel.fetch({
data: {
name: 'Bob',
userid: '1',
usertype: 'new'
}
}, {
success: (function () {
alert(' Service request success: ');
}),
error: (function (e) {
alert(' Service request failure: ' + e);
}),
complete: (function (e) {
alert(' Service request completed ');
})
});
Run Code Online (Sandbox Code Playgroud)
骨干行为如何不同?它是相同的URL,只有或没有参数.
我猜测的区别在于,在主干fetch的引擎盖下,"with"参数场景是一个帖子而"without"参数是一个简单的get.IE控制台以略微不同的输出反映出这一点.
"使用"参数我的IE浏览器控制台会报告请求需要CORS的警告(不是错误,而是警告):
!SEC7118:XMLHttpRequest for http://example.com/service/myservice.asmx/myoperation?name=Bob&userid=1&usertype=new required Cross Origin Resource Sharing(CORS).
我想它只是告诉我"嘿,你提出了一个交叉来源请求,我让它通过"."没有"这些参数我没有得到那个警告.我确实将服务标头设置为:
Access-Control-Allow-Origin:*
反应的确反过来反映了这一政策.
所以问题是为什么主干成功/错误/完成回调不会触发"带"参数?数据回归.骨干不应该反映成功吗?
我有一个在onChange事件中调用的代码
function group_changed(obj)
{
$.ajaxSetup({async:false});
$.post("/medilab/personnel/groups/getGroupRightsAjax",
{ 'group.id': obj.options[obj.selectedIndex].value },
function(data){
$("#div_rights").html(data);
}
);
}
Run Code Online (Sandbox Code Playgroud)
这工作正常,但如果我设置async:true有时结果与选择不匹配...我想这是发生的,因为一些请求丢失或响应没有按顺序.
知道如何保持异步吗?
我正在研究的项目使用jQuery.
我有一系列的Ajax调用,其中load()其他HTML片段反过来加载()其他片段.整件事令人困惑.我没有写代码.
有没有任何工具可以让我走一条callstack,这样我就能算出什么叫做方法?任何可以帮助我解决这个问题的浏览器工具?
解决方案:
最后这是因为在服务器端代码中注入了<script src ="...".您的建议确实有所帮助 - 它是这些的组合,并暂时设置Ajax来同步而不是异步,这有助于我追踪问题.
$.ajaxSetup({
async: false
});
Run Code Online (Sandbox Code Playgroud) 当我读到java版本1.7.0_09的源代码时,我发现Integer类的toString方法的实现使用了负int来计算mod操作,有什么意义吗?代码如下:
public static String toString(int i, int radix) {
if (radix < Character.MIN_RADIX || radix > Character.MAX_RADIX)
radix = 10;
/* Use the faster version */
if (radix == 10) {
return toString(i);
}
char buf[] = new char[33];
boolean negative = (i < 0);
int charPos = 32;
if (!negative) {
i = -i; //***** change i to negative
}
while (i <= -radix) {
buf[charPos--] = digits[-(i % radix)]; //***** change back to positive after
//***** mod operation …Run Code Online (Sandbox Code Playgroud) ajax ×4
jquery ×4
modulo ×2
.htaccess ×1
amazon-ec2 ×1
backbone.js ×1
boto ×1
c# ×1
c#-4.0 ×1
callback ×1
callstack ×1
debugging ×1
fiddler ×1
java ×1
javascript ×1
mocking ×1
mod-rewrite ×1
parameters ×1
proxy-server ×1
testing ×1
tostring ×1