Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery Firefox中的location.href_Jquery_Ajax_Firefox - Fatal编程技术网

Jquery Firefox中的location.href

Jquery Firefox中的location.href,jquery,ajax,firefox,Jquery,Ajax,Firefox,在我的jQueryAjax脚本中,我写道 $.ajax({ url: SearchUrl, type: 'POST', data: submitData, dataType: 'json', success: function (rec) { if (rec.data) { if (rec.data.url) {

在我的jQueryAjax脚本中,我写道

$.ajax({
            url: SearchUrl,
            type: 'POST',
            data: submitData,
            dataType: 'json',
success: function (rec) {
                if (rec.data) {
                    if (rec.data.url) {
                        pageLoading();
                        location.href = rec.data.url;
                    }
                    if (rec.data.error) {
                        errorText.text(rec.data.error);
                    }
                }
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                location.href = refreshUrl;
            }
        });
问题是控制器返回的数据中确实有rec.data.url。当我在IE、Safari、Chrome上测试时,代码可以很好地重定向到rec.data.url中给出的url。但是这在Firefox 10.1中不起作用,只有当前页面被重新加载,但没有任何重定向。 如果我在pageLoading()和location.href=rec.data.url之间放置了一个警报(“”),Firefox将在警报消息后重定向到rec.data.url中的url。

试试这个

window.location = 'your url';

不知怎的,我猜在FF和其他一些浏览器中,
window.location.href
是只读属性,因此它失败了,但只使用location应该是可以的

这很有趣,听起来它几乎像是在异步调用代码。您正确地使用了成功回调,而这不应该发生。@mrtsherman您所说的“不应该发生”是什么意思?如果我添加了警报,则成功与我希望的一样。警报是问题的征兆。警报“修复”此问题的原因是,它为完成呼叫提供了时间。如果您添加了
async:false
或在
setTimeout
中调用了位置更改,它也可能会“修复”它。我不明白这怎么会发生。如果你能在出现这种情况的地方贴一张提琴,那会很有用。这与location.href有什么不同吗?对于一个给定的问题来说,没有太大的不同,因为这些都是在不久前实施的,因为可能是Netscape时代,但是对于
href
附近的少数浏览器,它们只能是只读属性,因此可能不会给出你想要的结果。我可能错了,但我很确定,几个月前,我不得不遇到这个问题。