相关疑难解决方法(0)

jQuery已弃用同步XMLHTTPRequest

像许多其他人一样,我的网站正在使用jQuery.当我打开开发人员工具时,我看到一条警告说XMLHTTPRequest是

由于其对最终用户体验的不利影响而被弃用.

我继续阅读部分文档,但这是相当技术性的.有人可以用简单的术语解释从XMLHTTPRequest转换为WHATWG的后果吗?它说它发生在2012年.

此外,文档说工作人员之外的同步XMLHttpRequest正在从Web平台中删除,当发生这种情况时,如果用户代理在服务中拥有它们,他们是否需要修改现有代码?

javascript ajax jquery xmlhttprequest

115
推荐指数
4
解决办法
28万
查看次数

同步XMLHttpRequest警告和<script>

我收到一条警告信息:

主线程上的同步XMLHttpRequest因其对最终用户体验的不利影响而被弃用.如需更多帮助,请访问http://xhr.spec.whatwg.org/.

当执行包含脚本(具有本地src)的异步AJAX请求时,使用$.html()方法将其注入HTML .我已经将给定的脚本更改为包含async="async",但警告消息仍然存在.

我已经开始调试这个问题,发现我的附加<script>是通过来自jQuery.ajaxTransport(http://code.jquery.com/jquery-1.10.0.js,#8663)的jquery AJAX调用来处理的,其中async设置为false(这可能是问题来自).

现在 - 我该怎么办呢?

该消息显示在最新版本的Chrome和Firefox中.


虽然我无法在jsfiddle上提供测试用例,但这是一个显示问题的测试用例:

的test.html

<html>
<body>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.3.js"></script>
<script>
$(document).ready(function(){
    $.ajax({
        url: '/response.html',
        success: function(response){
            $(document.body).html(response);
        }
    })
});
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

response.html

<script type="text/javascript" src="/json.js" async="async"></script>
Run Code Online (Sandbox Code Playgroud)

json.js

console.log('hi');
Run Code Online (Sandbox Code Playgroud)

触发警告不需要AJAX请求 - 只需要插入一个 <script>

test2.html

<html>
<body>
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.3.js"></script>
<script>
$(document).ready(function(){
    $(document.body).html('<script type="text/javascript" src="/json.js" async="async"><\/script>');
});
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

值得注意的是,这已经修复,按照https://github.com/jquery/jquery/issues/2060

ajax jquery

57
推荐指数
5
解决办法
14万
查看次数

NetworkError:无法在'XMLHttpRequest'上执行'send'

我正在尝试向我的笔记本电脑本地托管的服务器发出POST ajax请求,但我似乎无法获得任何信息.当我单击我的站点上的一个按钮(localhost)时,我可以看到服务器传回正确的信息,但在前端我收到此错误:

错误:NetworkError:无法在'XMLHttpRequest'上执行'send':无法加载' http:// comp-ip '.

var param = JSON.stringify({varA:"varA",varB:"varB"});

$.ajax({
  type: "POST", 
  url: "http://comp-ip",
  async: false, 
  data: param,
  success: function(result, status, xhr){
    alert(result + ": " + status);
  },
  error: function(xhr, status, err) {
    alert(status + ": " + err);
  }
});
Run Code Online (Sandbox Code Playgroud)

它似乎每次都会引发错误,而不是"成功".任何人都知道出了什么问题?

编辑:我已经尝试在没有AJAX的情况下发送正常的POST请求,它也会引发"未定义"错误:

$(document).ready(function(){
    var param = JSON.stringify({varA:"varA",varB:"varB"});
     $("#btn").click(function(event){
           $.post( 
              "http://ip",
               param,
               function(data) {
                 $('#container').html(data);
               }
           ).fail(function(error) { alert(error.responseJSON) });
        });
});
Run Code Online (Sandbox Code Playgroud)

我尝试过的其他事情:1)将浏览器更改为Safari(同样的事情,服务器返回信息但网站出错)2)从false设置async = true.出于某种原因,当我将其设置为true时,服务器根本不响应.当它为假时,服务器响应.

ajax jquery http-post

15
推荐指数
2
解决办法
7万
查看次数

主线程上的同步XMLHttpRequest已弃用...尝试了许多不同的解决方案

我知道这个问题在这里发布了很多次,但是我尝试了所有可以在堆栈溢出时找到的解决方案,但没有一个能够工作.我只是想做一个简单的ajax查询来加载div中的页面.就像这样简单:

function loadHome(){
$('#container').html('<div class="loader"></div>');
$.ajax({
    type: "GET",
    url: "home.php",
        success: function(msg){
            $("#container").html(msg);
        }
});
}
Run Code Online (Sandbox Code Playgroud)

在控制台日志中,我得到了

主线程上的同步XMLHttpRequest因其对最终用户体验的不利影响而被弃用.如需更多帮助,请查看http://xhr.spec.whatwg.org/

除非我重新加载页面,否则主页上的一些javascript将无法运行.该页面默认已加载home.phpdiv内部,但我希望它加载其他页面然后当我点击"home"时它应该正常加载,并且由于该错误而没有发生.我已经尝试使用"async:true",但没有用.我不知道该怎么办.

javascript ajax jquery xmlhttprequest

7
推荐指数
1
解决办法
2万
查看次数

jQuery load()错误:不推荐使用主线程上的同步XMLHttpRequest

我正在尝试使用jquery load()函数在另一个页面中加载页面.以下是代码:

    ... head code
    </head>
    <body id="body">
    <div id="newbody"></div>

    <button id="loadit">loadpage</button>
    <script type="text/javascript">
    $("#loadit").click(function(){
        $( "#newbody" ).load( "edit.php?id=112" );

        }); 
    </script>
Run Code Online (Sandbox Code Playgroud)

当我单击按钮时,整个页面被清除,只显示"edit.php"页面的一个位.单个位我的意思是edit.php应该显示一个预先填充的表单,只显示一个没有CSS的单个字段.是因为我使用了错误的jQuery函数,即load().我想要做的是在当前页面的div标签中加载新页面.

我还在控制台中收到以下警告:

jquery.min.js:4主线程上的同步XMLHttpRequest因其对最终用户体验的不利影响而被弃用.

我哪里错了?

javascript jquery

4
推荐指数
1
解决办法
4431
查看次数

JS:[Deprecation]主线程上的同步XMLHttpRequest因其对最终用户体验的不利影响而被弃用

我在尝试Ajax请求的项目中收到错误

[Deprecation]主线程上的同步XMLHttpRequest因其对最终用户体验的不利影响而被弃用.

function getReviews() {
var toReturn = $.ajax({
    url: 'API/reviews.json',
    async: false
}).responseJSON;
return toReturn;
}
Run Code Online (Sandbox Code Playgroud)

我想知道是否有不同的方法来写这个没有错误

javascript ajax

4
推荐指数
1
解决办法
2万
查看次数

SignalR 2.2和ARR3.0负载均衡

我正在使用signalr2.2 Web应用程序并托管在IIS-8中.在这里,我尝试使用ARR3.0为我的应用程序实现负载平衡.在我的服务器场中,我连接了两台服务器,并将路由规则设置为"加权循环".每个服务器都有一个带HTML页面的javascript客户端.当我访问任何服务器的HTML页面时,请求已按预期路由,但我在我的html页面中出现此错误并且signalr未连接

WebSocket连接到 'WS://mydomain.com/signalr/connect运输=&的WebSockets clientProtocol = 1.5&connectionToken = x9rAfatyMm3TbqzrYKL1K37Z4tKrUTH7bwNmSItW55Z0ms6pe43YiQGFOmaHMyT%2BpmGz62ukt4tha72vPcJhdqLtIvsQvqvY15oYGv69JjzSuuiSL7v2l%2FccZT6tQa3Z&connectionData =%5B%7B%22name%22%3A%22chathub%22%7D%5D&TID = 1'失败:WebSocket握手期间出错:意外响应代码:400

如果我在我的serverfarm中使这个服务器的任何一个脱机,signalr工作正常,不会抛出任何错误.帮我找到解决方案.

如果我从我的.net客户端应用程序通信信号服务器,它将抛出以下错误

启动请求期间出错.停止连接.

websocket signalr iis-8 signalr.client arr

3
推荐指数
1
解决办法
1982
查看次数

我们怎样才能同步发送HTTP请求呢?

如果我没猜错的话,“AJAX”中的“A”意味着异步发送 HTTP 请求,而不等待 HTTP 响应。

我了解到我们可以通过 发送异步 HTTP 请求XMLHttpRequest,例如:

function handleButtonPress(e) { 
    var httpRequest = new XMLHttpRequest(); 
    httpRequest.onreadystatechange = handleResponse; 
    httpRequest.open("GET", e.target.innerHTML +  ".html"); 
    httpRequest.send(); 
} 
Run Code Online (Sandbox Code Playgroud)

我们怎样才能同步发送HTTP请求呢?

javascript xmlhttprequest

2
推荐指数
1
解决办法
3571
查看次数

弃用同步 XMLHttpRequest

我看到这个错误:“[Deprecation] Synchronous XMLHttpRequest on the main thread is deprecated 因为它对最终用户的体验有不利影响。有关更多帮助,请查看https://xhr.spec.whatwg.org/。”,在此代码:

var request;
if(window.XMLHttpRequest){
    request = new XMLHttpRequest();
}else{
    request = new ActiveXObject("Microsoft.XMLHTTP");
}
request.open('GET', 'http://www.mywebsite.com', false);
request.send();
Run Code Online (Sandbox Code Playgroud)

我应该用什么替换指令,因为它们已被弃用?

html javascript xmlhttprequest

1
推荐指数
1
解决办法
2万
查看次数