似乎Jquery.Form插件中没有错误处理工具,这非常令人沮丧.即使文档说我们可以使用$ .ajax选项,但当服务器返回错误时,我仍然无法使用'error'选项,尤其是500和400系列.是不是这个插件无法处理来自服务器的任何错误,还是一个bug等等?有人可以告诉我如何处理这个插件的错误(400,500等)?我需要你的帮助......我想要的只是一个简单的错误处理......谢谢.
$("#uploadingImg").hide();
var options = {//Define ajax options
type: "post",
target: "#responsePanel",
beforeSend: function(){
$("#uploadingImg").show();
},
complete: function(xhr, textStatus){
$("#uploadingImg").hide();
},
success: function(response, statusString, xhr, $form){
// I know what to do here since this option works fine
},
error: function(response, status, err){
// This option doesn't catch any of the error below,
// everything is always 'OK' a.k.a 200
if(response.status == 400){
console.log("Sorry, this is bad request!");
}
if(response.status == 601){
sessionTimedOut();
}
}
}
$("#polygonUploadForm").submit(function(){
$(this).ajaxSubmit(options); // …Run Code Online (Sandbox Code Playgroud) jquery file-upload jquery-plugins jquery-forms-plugin ajax-upload
我知道Stack Overflow上有一千个关于用JavaScript检测浏览器的问题.我的问题是如何在没有window.navigator(包括navigator.userAgent)的情况下检测浏览器?
首先,澄清一下,我不需要知道渲染引擎,这不适用于自适应布局,也不要惊慌:我已经在进行特征检测了.如果,为什么我问有关检测浏览器是很重要的,请评论,我会很乐意在解释拼接,但它可能会使问题严重长.
接下来,让我描述为什么我的问题不是重复的:
Javascript中的浏览器检测? 因为的19个答案,12都使用navigator.userAgent特异性(包括jQuery.browser其中使用的userAgent,现在正在反正消失),4使用navigator.appName(其给出"网景"在Chrome ...),1下侧的步骤通过推荐的特征检测,问题这不同于浏览器检测(我已经在使用特征检测,但要知道我可以使用它们的程度,我需要浏览器检测),2并不是真正的答案或是IE特定的.(虽然这种非的回答居然是,为什么在这里,我的问题是非常相关的解释:我试图避免碰到痛点在某些浏览器会崩溃的标签!)因为我的问题是问一个答案(甚至是黑客? )没有使用window.navigator,它不是该问题的副本.
检查用户是否正在使用IE, 因为 11个答案,10个使用navigator.userAgent,其中1个使用IE技巧仅检测IE,这不足以回答我的问题(尽管它可能只是发布的有用解决方案的一小部分)这里)?
在Javascript中,如何确定我当前的浏览器是否是计算机上的Firefox与其他所有浏览器? 因为 11个答案,8个使用navigator.userAgent,2个推荐特征检测(再次,不是我的问题),1个甚至不是答案,真的.
如何检测chrome和safari浏览器(webkit), 因为有8个答案,其中6个使用navigator.userAgent,2个是webkit特定的.不幸的是,WebKit并不一定只与Safari绑定,我需要知道浏览器,而不是渲染引擎.
希望这很清楚.
我知道还有其他方法可以做到这一点,但我不太了解每个浏览器的细节.在某些浏览器中是否存在始终或可靠地暴露给JavaScript的对象或变量?我知道一些实验性的API是以供应商为前缀的,但这对于在商业产品中使用似乎不是一个好主意,尽管如果需要我愿意屈服于那么低.还有其他可能吗?

我正在尝试访问标题'错误详细信息',您可以在浏览器网络检查器(上面的链接)中看到,标头返回.服务器方面我还将自定义标头添加到"Access-Control-Expose-Headers"以允许跨域请求,因为这被建议是对其他问题的修复.
以下是对服务器的请求以及成功/错误回调.
this.signon = function (request, onComplete, onError) {
console.log("Calling server with 'login' request...");
return $http.post("http://localhost:8080/markit-war/services/rest/UserService/login/", request)
.then(onComplete, onError);
};
var onLookupComplete = function(response) {
if (response.data.username)
{
//If user is returned, redirect to the dashboard.
$location.path('/dashboard');
}
$scope.username = response.data.username;
};
var onError = function(response) {
$scope.error = "Ooops, something went wrong..";
console.log('error-detail: ' + response.headers('error-detail'));
};
Run Code Online (Sandbox Code Playgroud)
当我尝试访问响应头时,如下所示:
console.log(response.headers());
console.log('error-detail: ' + response.headers('error-detail'));
Run Code Online (Sandbox Code Playgroud)
这只输出:content-type:"application/json"error-detail:null
有没有理由将错误详细信息标头映射到响应对象?
有什么方法可以用Javascript检测对rel ="noreferrer"的支持吗?
<a href="http://example.com" rel="noreferrer">link without referral</a>
Run Code Online (Sandbox Code Playgroud)
解决方案 - $ .browser已弃用,可能会在未来的jQuery版本中移动到插件中.
var is_webkit = $.browser.webkit;
if(is_webkit) {
alert('supports rel="noreferrer"');
}
Run Code Online (Sandbox Code Playgroud) 在Android设备上的移动Chrome中,有一个名为"数据保存"的设置,可通过"设置">"数据保存"访问.
启用后,读取媒体时的行为可能略有不同,特别是视频:禁止移动自动播放视频,除非视频静音但如果启用了数据保存,则不再允许静音自动播放.
我需要一种方法来检测是否使用了数据保存,这样我就可以改变我的视频播放器行为.
我知道在http请求中发送了一个标头:"save-data:on"但是我不知道从javascript读取http请求标头的任何方法.
更多信息:https: //developer.chrome.com/multidevice/data-compression
谢谢你的回答.
如何使用javascript查看加载页面的页眉.
有什么地方我可以执行
e.g. window.pageHeaders['session']
Run Code Online (Sandbox Code Playgroud)
注意:我不是在谈论Ajax页面加载.
有没有办法在angularjs中获取当前页面的标题,而无需单独调用?我无法在任何地方的文档中找到它,但似乎它应该是可能的.
例如,如果文件index.html包含角度代码,我如何读取初始请求的标头index.html?我可以用来$http再次拨打电话,但这似乎没必要.
当我点击我网站上的链接时,我想隐藏推荐人.要更好地了解我想要做什么:当有人点击我网站上的链接时,我不希望其他网站所有者知道访问者来自哪里.
我不在乎它是由PHP,HTML还是Javascript完成的.
我试过HTML刷新,javascript window.location,javascript弹出,PHP标题重定向,但没有任何效果.
Youtube为不存在的缩略图返回404,但它也返回有效的图像数据(损坏的视频缩略图),因此使用Image检查它不起作用,不会调用onerror:
var img = new Image();
img.onload = function() { alert("found")};
img.onerror = function() { alert("not found") };
img.src = "http://img.youtube.com/vi/aaaa/1.jpg";
Run Code Online (Sandbox Code Playgroud)
运行时,它会显示"已找到".有没有办法检测404是否可以实际加载图像数据?
如果可以检测到链接返回标准YouTube"破碎的视频"缩略图图像数据,那么也很好.
虽然可以通过 Javascript 获取浏览器的 User-Agent navigator.userAgent,但是否同样可以Accept在不执行 HTTP 请求的情况下获取浏览器的标头?
javascript ×8
angularjs ×2
html ×2
http ×2
jquery ×2
ajax-upload ×1
angular-http ×1
file-upload ×1
http-headers ×1
php ×1
redirect ×1
referrals ×1
referrer ×1
rest ×1
thumbnails ×1
user-agent ×1