相关疑难解决方法(0)

Jquery - 如何使$ .post()使用contentType = application/json?

我注意到在jquery中使用$ .post()时默认的contentType是application/x-www-form-urlencoded - 当我的asp.net mvc代码需要有contentType = application/json

(请参阅此问题,为什么我必须使用application/json:ASPNET MVC - 为什么ModelState.IsValid为false"当该字段确实有值时,x字段是必需的?)

如何使$ .post()发送contentType = application/json?我已经有了大量的$ .post()函数,所以我不想改成$ .ajax(),因为它需要花费太多时间

如果我试试

$.post(url, data, function(), "json") 
Run Code Online (Sandbox Code Playgroud)

它仍然有contentType = application/x-www-form-urlencoded.那么如果"json"参数没有将contenttype更改为json,那究竟该做什么呢?

如果我试试

$.ajaxSetup({
  contentType: "application/json; charset=utf-8"
});
Run Code Online (Sandbox Code Playgroud)

这有效但影响我拥有的每一个$ .get和$ .post并导致一些破坏.

那么有什么方法可以改变$ .post()的行为来发送contentType = application/json?

ajax jquery content-type

290
推荐指数
10
解决办法
37万
查看次数

IE10/11 Ajax XHR错误 - SCRIPT7002:XMLHttpRequest:网络错误0x2ef3

我已经在这个问题上工作了几天,并在这个论坛上伸出手,因为我觉得我已经筋疲力尽了.我有一个在Drupal 7网站上托管的表单,需要将表单值提交给外部URL.该表单通过jQuery.AJAX使用HTTPS协议的POST请求

  • 表单在Chrome,Firefox和Safari中运行良好
  • 我在IE10 +控制台中收到以下错误(当使用IE10 +时,ajax调用总是进入错误函数):

SCRIPT7002:XMLHttpRequest:网络错误0x2ef3,由于错误00002ef3无法完成操作

我尝试过以下方法:

  • 添加contentType:

    // causes all of the jQuery callbacks to error out
    "application/json; charset=utf-8",
    
    Run Code Online (Sandbox Code Playgroud)
  • 在实际POST之前尝试Ajax GET调用(如另一个SO线程所示)

  • 添加header( 'Content-Type: application/json; charset=utf-8' );到请求中

  • crossDomain: true

添加了适当的CORS标头,并在下面粘贴表单代码:

$.ajax({
    url: "[URL]", //the page to receive the form data  
    crossDomain: true,
    type: "POST",
    data: dataString, //posting to API 
    dataType: "json", //the data type the function should expect back from the server     
    success: function(data) {         
        if (data.response_status == "1") { //error for at least 1 field …
Run Code Online (Sandbox Code Playgroud)

javascript php jquery internet-explorer json

35
推荐指数
4
解决办法
6万
查看次数

IE10/IE11在清除缓存后中止后发布Ajax请求,并显示错误"网络错误0x2ef3"

SCRIPT7002:XMLHttpRequest:网络错误0x2ef3,由于错误00002ef3无法完成操作

目前没有有效的解决方案.

更新:也在IE11上注意到.

经过越来越多的调查,我得到了这样的结果:

  1. 问题是我的应用程序特有的,它不会发生在Facebook上.
  2. 这个问题与每个主机的最大请求数无关(我做了充斥服务器的示例页面,IE10能够同时处理多达8-10个请求,在我的应用程序中我也尝试连续执行ajax请求,它也失败了).
  3. 该问题特定于POST请求.
  4. 问题并不是特定于使用的JS库(我尝试从控制台直接使用XMLHttpRequest也失败了).
  5. 失败发生在xhr.send(),xhr.readyState = 4和xhr.onreadystatechange触发之后.
  6. 该故障与任何内容类型,正确请求或服务器配置无关.它只是客户端,请求虚拟页面将失败,只有最小的XHR,只有xhr.open和xhr.send.
  7. 它主要发生在清除浏览器缓存之后.
  8. 在POST之前执行GET请求不能解决此问题.

我的问题是:

  1. 浏览器缓存如何影响POST ajax请求?
  2. 是否有任何机构与IE开发人员联系,告诉我们这个错误'网络错误0x2ef3'映射到了什么?

现在,我正在做的临时解决方案是,如果HTTP状态代码为零,则只重试最多3次.但它非常难看,因为即使上传请求有时也会失败,并且对于那些重试的请求变得缓慢,有时需要额外的100毫秒.

重现步骤:

  1. 确保禁用fiddler或代理.
  2. http://ie10.laiths.name/#!login
  3. 打开IE10控制台,删除浏览器缓存.
  4. 尝试此无效登录:random@rand.com/random
  5. 3-4次(清除缓存/无效登录)后,您将看到以下错误:SCRIPT7002:XMLHttpRequest:网络错误0x2ef3,由于错误00002ef3无法完成操作.

我的IE版本:

  • Win7 IE10版本:10.0.9200.16618
  • 更新版本:10.0.6(KB2838727)

现在我正在解决它,如果browser is IE10&& Request is POST&& 重试最多3次HTTP status code is 0.

如果有人可以帮我删除我丑陋的解决方案,我将不胜感激,因为有了这样的解决方案,即使请求进入服务器并且它返回0我也会重试(我试图通过测量xhr.send之间的时间来避免这种情况)和它的回调但它不可靠),如果IE10在comptMode中,如果IE11有同样的问题,添加到那个性能,它将占用我的机器〜每次重试之间的170ms.

javascript ajax post xmlhttprequest internet-explorer-10

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

XMLHttpRequest:网络错误0x80070005,Microsoft Edge上拒绝访问(但不是IE)

我有一个非常简单的ajax请求(见下文).该服务器使用CORS,在IE 10 +,Chrome,Firefox和Opera中运行良好.但是,在Microsoft Edge上,它失败了

XMLHttpRequest:网络错误0x80070005,访问被拒绝.

我已经在这里,这里,这里这里研究了这些帖子,但找不到有效的答案.那些人在使用IE时遇到了问题,但添加了contentType(此get不需要)和crossDomain使其工作正常.

CanIUse似乎表明CORS在Edge中可用.IE9关闭时请求也失败了,但是CanIUse只声明对CORS的部分支持,所以这是可以理解的.

有什么想法我可以解决这个问题吗?

码:

$.ajax({
      crossDomain: true,
      url: "http://localhost:2023/api/DoAction/test",
      success: function (a) {
        var res = JSON.parse(a);
        alert(res.content);
      },
      error: function (a, e, r) {
        alert(a.responseText);
      }
    });
Run Code Online (Sandbox Code Playgroud)

更新

要提供更多信息,以防它提供任何线索--ajax请求来自Azure并发布到使用OWIN自托管创建的localhost网站.这是不寻常的,但软件(只能在本地使用)需要从云服务获取数据.如上所述,它适用于所有其他浏览器,Edge是唯一的问题.

javascript ajax internet-explorer cors microsoft-edge

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

Internet Explorer:SCRIPT7002:XMLHttpRequest:网络错误0x2f7d,由于错误00002f7d无法完成操作

这个问题让我疯了.我们的网络应用程序使用HTTP POST登录用户,现在IE 10正在中止连接并说:

SCRIPT7002: XMLHttpRequest: Network Error 0x2f7d, Could not complete the operation due to error 00002f7d.
Run Code Online (Sandbox Code Playgroud)

以下是我的所有细节

  • IE版本10.0.9.16618,更新版本10.0.6.我也在IE版本10.0.9200.16635,更新版本10.0.7上再现了这个.
  • 该域名正在使用HTTPS.HTTP连接上不会发生此问题
  • 我已经读过因为某种原因IE需要在它可以进行HTTP POST之前获得证书,所以我在POST请求之前运行了HTTP GET,但现在GET错误了.请参阅网络流屏幕截图.GET非常简单,只是一个PING页面,返回"我起来了."
  • Asyn被关闭$ .ajax({type:'POST',url:url,async:false ...}); 我在其他帖子中读到这很重要.
  • 证书很好,见屏幕截图.
  • 如果将该网站添加为"受信任的网站",但这并不是我们正在拍摄的用户体验,那么问题就会消失.
  • 这只是在一个月前开始的.微软最近是否推出了一些新的更新?
  • 我已经读过:http://social.msdn.microsoft.com/Forums/windowsapps/en-US/dd5d2762-7643-420e-880a-9bf75554e383/intermittent-xmlhttprequest-network-error-0x2f7d-could-not-完成操作 - 由于错误.它没有帮助.

截屏:

网络流量: 在此输入图像描述

证书很好:

在此输入图像描述

任何帮助是极大的赞赏.我花了很多时间没有运气.正如您所料,这在Chrome和Firefox中运行良好.如果您需要更多有关正在发生的事情的详细信息,请告诉我们.

谢谢,

xmlhttprequest internet-explorer-10

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

由于错误c00ce56e无法完成操作

我已经从富脸3.3升级到富脸4.2因为ajax不能用于IE9.现在它仍然不起作用.

在收到响应之后IE获得了一个JS错误"SCRIPT58734:Der Vorgang konnte aufgrund des folgenden Fehlers nicht fortgesetzt werden:c00ce56e." 在尝试时

data.responseText=request.responseText
Run Code Online (Sandbox Code Playgroud)

在jsf.js.html?ln = javax.faces&conversationContext = 2,第1行第21747行

我认为这是因为一个不完整的HTTP标头

Content-Type: text/xml;charset=UTF8
Run Code Online (Sandbox Code Playgroud)

应该

Content-Type: text/xml;charset=UTF-8
Run Code Online (Sandbox Code Playgroud)

这是服务器的原始响应

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
X-Powered-By: JSF/2.0
Cache-Control: no-cache
Content-Type: text/xml;charset=UTF8
Content-Length: 293
Date: Tue, 17 Apr 2012 15:25:22 GMT

<?xml version='1.0' encoding='UTF8'?>
<partial-response><changes><update id="outtest"><![CDATA[<span id="outtest"><span     class="outhello">Hello !</span></span>]]></update><update id="javax.faces.ViewState"><![CDATA[2809980525147413088:295565165947012503]]></update></changes></partial-response>
Run Code Online (Sandbox Code Playgroud)

我正在使用

javaee-web-api 6
myfaces-orchestra-core 1.4
Hibernate  4.1
Spring 3.1.1
Richfaces 4.2.0
Primefaces 3.2
jsf-api+impl 2.1.7
Run Code Online (Sandbox Code Playgroud)

jstl 1.2

并在tomcat 7上运行

编辑:现在我确定它的标题.我在charles-proxy中设置了一个断点并手动编辑了响应头,编辑后的http头IE9显示了正确的结果,没有任何错误

java ajax richfaces jsf-2 internet-explorer-9

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

Microsoft Edge:XMLHttpRequest:网络错误0x2efd,由于错误00002efd无法完成操作

我有一个页面的HTML和Angularjs文件.

App.js

angular
.module('vod', [])
.controller('moviesController', ['$http', function ($http) {
    var self = this;
    self.movies = [];
    $http.get('http://localhost:8080/movies/').then(function (response) {
        self.movies = response.data;
    }, function (errResponse) {
        console.error('Error while fetching movies');
    });
}]);
Run Code Online (Sandbox Code Playgroud)

HTML

<!DOCTYPE html>
<html>
    <head>
        <title>Angular</title>
        <script src="angular.min.js"></script>
        <script src="app.js"></script>
    </head>
    <body ng-controller="moviesController as ctrl"
          ng-app="vod">
        <div ng-repeat="movie in ctrl.movies">
            <span ng-bind="movie.title"></span>
        </div>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

它运作良好,在Chrome制作电影的标题,但给人的错误
SCRIPT7002: XMLHttpRequest: Network Error 0x2, The system cannot find the file specified

SCRIPT7002: XMLHttpRequest: Network Error 0x2efd, Could not complete …

javascript ajax angularjs microsoft-edge

10
推荐指数
1
解决办法
8945
查看次数

重新访问GWT-RPC和臭名昭着的偶发"StatusCodeException:0"异常

我的问题是在通过子域访问页面时使用GWT 2.6.1时发生臭名昭着的"StatusCodeException:0"问题.https://sub.site.com/

现在,这种情况相当零星一个客户使用IE11和我不能重现使用IE11,IE10,IE9还是IE8(不谈论Chrome或Firefox)几个不同的计算机上这一点.

从中访问完全相同的webapp https://site.com/似乎对该客户起作用.

这显然让我得出结论,我在同源策略方面遇到了问题.

但奇怪的是,我的webapp的设计方式是没有跨域跨子域请求.这同样适用于无交叉协议以及无交叉端口的请求.换句话说,在这种情况下不违反同源政策.作为对此的确认,我可以提供以下证据:

在客户现场我已经看到了如何重现:客户开始使用应用程序,一切正常 - 所有请求都正常返回响应.然后,经过几分钟的工作,同一页面上的完全相同的请求(没有重新加载)开始失败,并显示StatusCodeException:0.

基本上,无论是https://sub.site.comhttps://site.com指向同一个IP,并有只有一个Tomcat的web应用程序正是服务于相同的资源两个https://sub.site.comhttps://site.com.

另一个证明是单个GWT模块本身的代码库:在那里我只使用一个服务的一个实例DashboardService:

public class DashboardModule extends EntryPoint implements IDashboardModule {

    private final DashboardServiceAsync dashboardService = createDashboardService();

    @Override …
Run Code Online (Sandbox Code Playgroud)

subdomain gwt xmlhttprequest gwt-rpc same-origin-policy

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