Gut*_*ter 2 javascript ajax jquery
我已经创建了一个插件,可以解决jQuery Ajax函数问题.运行Ajax单元测试1.4.2时无法找到的一个问题它不会通过这两个测试
测试一个测试始终失败:
function callback(msg){
return function(){
equals( this, context, "context is preserved on callback " + msg );
};
}
Run Code Online (Sandbox Code Playgroud)
该this参考而不是被<div/>标签成为XPC跨源包装.
需要注意的是,jQuery 1.4.2 Ajax不能使用FireFox 3.6.8处理301的服务器响应.它将返回0.我已经修改了我的jQuery库来解决这个问题.
还有一些JSONP停止计时.BUG#5383.
也许一些演示文稿问题和这个插件将为野外做好准备.
任何帮助,将不胜感激.包括设计.提前致谢.
问题是你失去上下文的service.monitor调用最初传递时的方法success,error,beforeSend和complete处理程序.
看一下ajaxMonitor.service.js,您需要用a替换每个原始处理程序调用.call()以维护正确的上下文:
1)在service.monitorSuccess()中:
origSuccess(data, textStatus, request);
//should be:
origSuccess.call(this, data, textStatus, request);
Run Code Online (Sandbox Code Playgroud)
2)在service.monitorError()中:
origError(request, status, errorThrown);
//should be:
origError.call(this, request, status, errorThrown);
Run Code Online (Sandbox Code Playgroud)
3)在service.monitorBeforeSend()中:
var abortEarly = origBeforeSend(request);
//should be:
var abortEarly = origBeforeSend.call(this, request);
Run Code Online (Sandbox Code Playgroud)
4)在service.monitorComplete()中:
var xhr = origComplete(request, status);
//should be:
var xhr = origComplete.call(this, request, status);
Run Code Online (Sandbox Code Playgroud)
我在这里复制了您的测试设置,以便您可以看到结果:http://ncraver.com/AjaxTest/
请注意其他一些测试失败...这些与我的更改无关,它们是我的网站没有运行PHP的结果,因此测试从这些.php页面得到不正确的响应:)
| 归档时间: |
|
| 查看次数: |
224 次 |
| 最近记录: |