如何更改 jQuery 中的标题属性?

Posted

技术标签:

【中文标题】如何更改 jQuery 中的标题属性?【英文标题】:How can I change header properties in jQuery? 【发布时间】:2018-09-30 11:12:50 【问题描述】:

基本上,我有一些 jQuery 试图将一些 JSON 数据发布到服务器。这是我发送时 Firefox 显示的标题。但是,如果我使用 Firefox 的“编辑并重新发送”功能,我可以强制它正确发送。如何更改我的代码以强制使用我想要的标题?我已经在服务器上启用了 cors,如果只有标头正确,我已经完成了使它工作所需的一切。

这是我的代码,后面是标题:

$.ajax(

        url: "http://localhost:8080/users/login",
        method: 'POST',
        cors: true,
        data: dat,
        headers: 
            "Accept": 'application/json'
        ,
        dataType: "application/json",
        success: function (response) 
            alert('YAY');
        ,
        failure: function (response) 
            alert('Error', 'Invalid Credentials');
        
    );

失败(通过代码发送)

Accept:text/html,application/xhtml+xm…plication/xml;q=0.9,*/*;q=0.8  
Accept-Encoding: gzip, deflate  
Accept-Language: en-US,en;q=0.5  
Connection: keep-alive  
Content-Length:31  
Content-Type: application/x-www-form-urlencoded  
Host: localhost:8080  
Upgrade-Insecure-Requests:1  
User-Agent:Mozilla/5.0 (Windows NT 10.0; …) Gecko/20100101 Firefox/59.0

有效(在 FireFox 中手动编辑标题)

Accept: application/json
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.5
Cache-Control: no-cache
Connection: keep-alive
Content-Length: 41
Content-Type: application/json
Host: localhost:8080
Pragma: no-cache
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0

【问题讨论】:

【参考方案1】:

dataType: 不应该是 MIME 类型,它是 jQuery 知道如何解码的一小部分类型。如果您使用dataType: "json",它将发送Accept: application/json,并在响应中自动调用JSON.parse()

要指定您发送的数据的格式,请使用contentType: 选项,它确实采用 MIME 类型。

$.ajax(
    url: "http://localhost:8080/users/login",
    method: 'POST',
    cors: true,
    data: dat,
    dataType: "json",
    contentType: "application/json",
    success: function (response) 
        alert('YAY');
    ,
    failure: function (response) 
        alert('Error', 'Invalid Credentials');
    
);

【讨论】:

一旦我们弄清楚我想要什么,他的回答就被接受了。是否可以将该评论移回此处作为对他的回答的补充 @cryophoenix 如果您在谈论event.preventDefault(),则问题中没有解决问题。

以上是关于如何更改 jQuery 中的标题属性?的主要内容,如果未能解决你的问题,请参考以下文章

如何更改 JQuery.DataTable 中单元格的样式?

识别 KnockoutJS 中的属性更改事件?

jquery mobile data-icon

如何使用 jquery 动态更改 iframe 中的内容?

如何使用 jQuery 中的滑块更改样式的值

如何更改选择 Jquery 中的默认选项