我有以下ajaxError
$(document).ajaxError(function (e, xhr, settings) {
if ( settings.url == "/users/sign_in" ) {
if (xhr.status == 401) {
$('#notice_signin').html(xhr.responseText);
$('#notice_signin').addClass("alert").addClass("alert-error");
}
}
});
问题是settings.url有不同的参数,例如语言环境,来源等。所以settings.url
永远不会匹配/users/sign_in
但是/users/sign_in?lang=fr&source=fb
什么是剥离params的简单方法?
答案 0 :(得分:1)
如果您只需要检查网址,则可以使用indexOf方法
if ( settings.url.toLowerCase().indexOf("/users/sign_in")>-1)
....
否则,如果你想让url不带参数供以后使用,你可以使用split方法
var url = settings.url.split('?')[0];
答案 1 :(得分:1)
if (settings.url.split('?')[0] == '/users/sign_in') {
...
}
请注意,如果settings.url
恰好是null
,则不包括错误处理。
作为旁注,如果'/ users / sign_in'是当前页面的路径,您可以使用window.location.pathname
而不是硬编码该值。
答案 2 :(得分:1)
您可以尝试使用split
var urlString = '/users/sign_in?lang=fr&source=fb';
var urlArray = urlString.split('?');
alert(urlArray[0]);
var settingsurl = urlArray[0];
if ( settings.url == "/users/sign_in" ) {
....
}
答案 3 :(得分:0)
或其他选项可以使用substring
if ( settings.url.substr(0,settings.url.indexOf("?")) == "/users/sign_in" )