Javascript 如何使用jQuery和Safari通过JSONP交换数据?

Javascript 如何使用jQuery和Safari通过JSONP交换数据?,javascript,jquery,ajax,safari,jsonp,Javascript,Jquery,Ajax,Safari,Jsonp,我使用jQuery使用JSONP与python服务器交换数据,这非常好,例如在Chrome中 但在Safari中它不起作用。在Safari控制台中,我看到错误“[error]未能加载资源:Die Netzwerkverbindung wurde unterbrochen.(此处,第0行)”。因此,Safari中似乎存在网络错误。从服务器端看,我可以看到请求到达了服务器。在那里,它以正确的方式进行处理,并生成回复。但是服务器的回复无法在Safari中处理 <script src="j

我使用jQuery使用JSONP与python服务器交换数据,这非常好,例如在Chrome中

但在Safari中它不起作用。在Safari控制台中,我看到错误“[error]未能加载资源:Die Netzwerkverbindung wurde unterbrochen.(此处,第0行)”。因此,Safari中似乎存在网络错误。从服务器端看,我可以看到请求到达了服务器。在那里,它以正确的方式进行处理,并生成回复。但是服务器的回复无法在Safari中处理

    <script src="jquery.js"></script>
    <script src="jquery.mobile-1.4.5.js"></script>

    $.ajax({
       url : "http://127.0.0.1:8888/url/here?callback=?",
       data: {request: "get_text", value: " "},
       dataType: 'jsonp',
       beforeSend: setHeader,
       success: function(data){
         console.log(data)
         $("#page_content").html(data.reply);
       },
         error: function (request, status, error) {
         console.log(error );
       }  
    });

    function setHeader(xhr) {
        xhr.setRequestHeader('Access-Control-Allow-Origin', '*');
        xhr.setRequestHeader("Access-Control-Allow-Headers", "X-Requested-With");
        } 

$.ajax({
url:“http://127.0.0.1:8888/url/here?callback=?",
数据:{请求:“获取文本”,值:},
数据类型:“jsonp”,
发送前:setHeader,
成功:功能(数据){
console.log(数据)
$(“#page_content”).html(data.reply);
},
错误:功能(请求、状态、错误){
console.log(错误);
}  
});
函数setHeader(xhr){
setRequestHeader('Access-Control-Allow-Origin','*');
setRequestHeader(“访问控制允许标头”、“X-Requested-With”);
} 
我在谷歌上搜索了很多,并尝试了几个实现。我还尝试用主机名更改IP。我还添加了setHeader函数,但这也没有解决问题


如何在Safari中与JSONP(使用jQuery,甚至通常使用Java脚本)交换数据?有人知道一个有效的实现吗

如果打开
http://127.0.0.1:8888/url/here?callback=boom
在新选项卡中?如果我将您的链接放在新选项卡中,我在每个浏览器中都没有收到响应,但这是应该的。当我打开此链接时
http://127.0.0.1:8888/url/here?callback=myFunction&request=get_text&value=+&_=143974119053
在Chrome中,我得到这样的回复:
({“回复”:“这是一个测试。”})
。但我只在Chrome中得到它。在Safari中,我收到与以前相同的错误消息。响应必须是
myFunction({“reply”:“这是一个测试。”})
。谢谢。我更改了服务器代码。现在回复是
myFunction({“回复”:“这是一个测试。”})
。在Chrome中,它仍然有效。但是在Safari中,错误仍然是一样的。如果打开
http://127.0.0.1:8888/url/here?callback=boom
在新选项卡中?如果我将您的链接放在新选项卡中,我在每个浏览器中都没有收到响应,但这是应该的。当我打开此链接时
http://127.0.0.1:8888/url/here?callback=myFunction&request=get_text&value=+&_=143974119053
在Chrome中,我得到这样的回复:
({“回复”:“这是一个测试。”})
。但我只在Chrome中得到它。在Safari中,我收到与以前相同的错误消息。响应必须是
myFunction({“reply”:“这是一个测试。”})
。谢谢。我更改了服务器代码。现在回复是
myFunction({“回复”:“这是一个测试。”})
。在Chrome中,它仍然有效。但在Safari中,错误仍然是一样的。