$ .ajax POST无法与Safari一起使用

时间:2018-07-17 18:31:45

标签: javascript jquery html ajax post

我将ESP32用作Web服务器,可以在Web和Micro端修改一些值,为此,我使用$ .getJSON从ESP32检索数据并刷新Web页面(一切正常)和$ .ajax将数据从网页发送到服务器,这部分代码也可以正常工作,除了Safari之外,这是我的代码:

<?xml version="1.0" encoding="UTF-8"?>                
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">     
    <xsl:output method="xml"/>
    <xsl:strip-space elements="*"/>

    <xsl:template match="/">                              
        <xsl:apply-templates select="*"/>
    </xsl:template>

    <xsl:template match="*">                              
        <xsl:if test="(not(.=&apos;&apos;) and not(.=0))">    
            <xsl:copy>                                            
                <xsl:copy-of select="@*"/>
                <xsl:apply-templates/>
            </xsl:copy>
        </xsl:if>
    </xsl:template>
</xsl:stylesheet>

我的想法是,读取url可以理解哪些数据正在发送,而“ data:”是这些变量的值。使用Google Chrome浏览器,我会收到以下信息:

var data = {'name':'John','surname':'Smith'};
$.ajax({
        url: 'setConfig',           
        type: 'POST',   
        contentType:'application/json',
        data: JSON.stringify(data),
        dataType:'json'
        });

这正是我想要的,但是使用Safari浏览器的代码相同:

    POST /azzeraContatori HTTP/1.1
Host: 192.168.1.1
Connection: keep-alive
Content-Length: 17
Accept: application/json, text/javascript, */*; q=0.01
Origin: http://192.168.1.1
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36
Content-Type: application/json
Referer: http://192.168.1.1/contatori.html
Accept-Encoding: gzip, deflate
Accept-Language: it-IT,it;q=0.9,en-US;q=0.8,en;q=0.7

{"name":"John","surname":"Smith"}

正如您看到的一样,除了消息开头缺少“数据”外,我无法理解为什么如果有人可以帮助我,此浏览器为什么不发送$ .ajax的这一部分,非常感谢。

谢谢。

0 个答案:

没有答案