首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >火狐JQuery JSON问题

火狐JQuery JSON问题
EN

Stack Overflow用户
提问于 2009-11-27 05:26:20
回答 2查看 2.1K关注 0票数 1

我使用以下代码从ASP.net MVC应用程序请求数据。我还使用了TcpTrace,这样我就可以看到请求/响应。

代码语言:javascript
复制
if (isInteger($('#txtDay').val()) && isInteger($('#txtMonth').val()) && isInteger($('#txtYear').val())) {
    $.ajax({
        type: 'POST',
        contentType: 'application/json; charset=utf-8',
        url: strApi + 'wip/job/getsummary/' + $('#txtYear').val() + '/' + $('#txtMonth').val() + '/' + $('#txtDay').val(),
        data: '{}',
        dataType: 'json',
        cache: false,
        beforeSend: function(XMLHttpRequest) { ShowLoading(); },
        success: function(data, textStatus) {
            ShowJobSummaryList(data);
        },
        error: function(XMLHttpRequest, textStatus, errorThrown) {
            HideLoading();
            ShowStatus('unable to retrieve job summary list');
            alert(XMLHttpRequest.statusText);
            alert(textStatus);
        },
        complete: function(XMLHttpRequest, textStatus) {
            HideLoading();
        }
    });
}

使用IE一切正常-内容类型被正确设置为application/json。然而,在Firefox 3.5.5下,缺少内容类型:

代码语言:javascript
复制
OPTIONS /api/wip/job/getsummary/2009/11/25 HTTP/1.1
Host: localhost:8080
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-gb,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Origin: http://localhost
Access-Control-Request-Method: POST
Access-Control-Request-Headers: x-requested-with

这会导致XML返回ASP.net。有人能解释为什么Firefox不发送内容类型吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-11-27 06:02:49

它看起来像是在发送options请求。此问题的正常原因是,当您尝试使用ajax请求时,某些浏览器(包括firefox -请参阅here)不允许向其他域发出ajax请求。

你能澄清你请求的url是否在另一个域上吗?如果是这种情况,您将不得不使用jsonp或使用服务器代理。

票数 1
EN

Stack Overflow用户

发布于 2017-02-16 02:38:26

类似的事情正在发生在我身上。当我用Fiddler触发相同的请求时,它可以工作,但是当我用火狐HttpRequester触发它时,它就不起作用了,所以我比较了这两个请求,看起来HttpRequester改变了请求的头部。我尝试了几种方法让它工作,甚至编辑了Raw请求,但当我检查最终请求时,content-type仍然如下所示:

代码语言:javascript
复制
Content-Type: application/json, application/json

它还添加了一堆其他的头文件。但当我检查Fiddler提出的最后一个请求时,它只是:

代码语言:javascript
复制
Content-Type: application/json

因此,它起作用了。

我还在Mozilla Firefox产品支持页面上发现了抱怨类似错误的评论。但我记得这在HttpRequester中以前是有效的,所以这与最新版本有关。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1805724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档