标签: xmlhttprequest

我如何知道jQuery是否有待处理的Ajax请求?

我在使用jQuery控件时遇到了一些问题.假设您有一个下拉列表,允许您输入您要查找的项目的ID,当您按下ENTER或在文本框中失去焦点时,它会通过jQuery验证您输入的ID是否正确,如果它没有显示警告"T.

问题是,当普通用户在其中输入无效值并通过按下提交按钮失去焦点时,jQuery帖子会在发送表单提交后返回.

有什么方法可以检查jQuery是否有任何异步请求处理,以便我不允许表单提交?

ajax jquery xmlhttprequest

85
推荐指数
4
解决办法
10万
查看次数

如何通过AJAX发送"&"(&符号)字符?

我想从JavaScript发送一些变量和一个带POST方法的字符串.我从数据库中获取字符串,然后将其发送到PHP页面.我正在使用XMLHttpRequest对象.问题是字符串包含字符"&"几次,PHP中的$ _POST数组看起来像多个键.我尝试用"/"替换"&"和replace()函数,但似乎没有做任何事情.有人可以帮忙吗?

javascript代码和字符串如下所示:

var wysiwyg = dijit.byId("wysiwyg").get("value");
var wysiwyg_clean = wysiwyg.replace('&','\&');

var poststr = "act=save";

poststr+="&titlu="+frm.value.titlu;
poststr+="&sectiune="+frm.value.sectiune;
poststr+="&wysiwyg="+wysiwyg_clean;
poststr+="&id_text="+frm.value.id_text;

xmlhttp.open("POST","lista_ajax.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send(poststr);
Run Code Online (Sandbox Code Playgroud)

字符串是:

 <span class="style2">&quot;Busola&quot;</span>
Run Code Online (Sandbox Code Playgroud)

javascript string ajax post xmlhttprequest

85
推荐指数
4
解决办法
14万
查看次数

CORS POST请求可以使用普通的javascript,但为什么不使用jQuery?

我正在尝试制作一个Cross Origin帖子请求,并且我使用这样的普通Javascript工作:

var request = new XMLHttpRequest();
var params = "action=something";
request.open('POST', url, true);
request.onreadystatechange = function() {if (request.readyState==4) alert("It worked!");};
request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
request.setRequestHeader("Content-length", params.length);
request.setRequestHeader("Connection", "close");
request.send(params);
Run Code Online (Sandbox Code Playgroud)

但我想使用jQuery,但我无法让它工作.这就是我正在尝试的:

$.ajax(url, {
    type:"POST",
    dataType:"json",
    data:{action:"something"}, 
    success:function(data, textStatus, jqXHR) {alert("success");},
    error: function(jqXHR, textStatus, errorThrown) {alert("failure");}
});
Run Code Online (Sandbox Code Playgroud)

这导致失败.如果有人知道为什么jQuery不起作用,请让我们都知道.谢谢.

(我正在使用jQuery 1.5.1和Firefox 4.0,我的服务器正在使用正确的Access-Control-Allow-Origin标头进行响应)

javascript jquery xmlhttprequest cors

84
推荐指数
3
解决办法
19万
查看次数

在IIS7上启用跨源资源共享

我最近遇到了将Javascript请求发布到另一个域的问题.默认情况下,不允许将XHR发布到其他域.

按照http://enable-cors.org/的说明,我在其他域上启用了此功能.

<?xml version="1.0" encoding="utf-8"?>
<configuration>
 <system.webServer>
  <httpProtocol>
    <customHeaders>
      <add name="Access-Control-Allow-Origin" value="*" />
      <add name="Access-Control-Allow-Methods" value="GET,PUT,POST,DELETE,OPTIONS" />
      <add name="Access-Control-Allow-Headers" value="Content-Type" />
    </customHeaders>
  </httpProtocol>
 </system.webServer>
</configuration>
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

现在一切正常,但是在发回工作200响应之前仍然会返回405响应.

Request URL:http://testapi.nottherealsite.com/api/Reporting/RunReport
Request Method:OPTIONS
Status Code:405 Method Not Allowed
Request Headersview source
Accept:*/*
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-GB,en-US;q=0.8,en;q=0.6
Access-Control-Request-Headers:origin, content-type, accept
Access-Control-Request-Method:POST
Connection:keep-alive
Host:testapi.nottherealsite.com
Origin:http://test.nottherealsite.com
Referer:http://test.nottherealsite.com/Reporting
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1
Response Headersview source
Access-Control-Allow-Headers:Content-Type
Access-Control-Allow-Methods:GET,PUT,POST,DELETE,OPTIONS
Access-Control-Allow-Origin:*
Allow:POST
Cache-Control:private
Content-Length:1565
Content-Type:text/html; charset=utf-8
Date:Tue, 18 Sep 2012 14:26:06 GMT …
Run Code Online (Sandbox Code Playgroud)

javascript iis-7 xmlhttprequest cors

84
推荐指数
6
解决办法
18万
查看次数

在PhoneGap/Cordova中处理cookie

我正在开发一个使用服务器会话的PhoneGap应用程序.它需要cookie来处理会话.此外,还应处理来自负载均衡器的cookie.所以没有办法解决.你如何处理PhoneGap应用程序中的Cookie?

我已经完成了一些研究:

  • 有人说cookie处理可能取决于服务器没有为未知用户代理(IIS)设置cookie:iOS上的PhoneGap会话(cookie)
  • 在JavaScript中,可以使用document.cookie = ...设置cookie,但它们不会保存在PhoneGap中并丢失.在发射xhr请求之前它有效.
  • 使用xhr.getResponseHeader('Set-Cookie')xhr请求后可以检索Cookie.但只有当实际设置在服务器上时.不幸的是,jQuery剥离了"Cookie"标题.
  • 在(xhr)请求之后,未分配JavaScript document.cookie属性并且未更新.
  • 有人建议localStorage保存会话ID等.但是所有脚本都可以访问它,这可能是XSS安全问题.Cookie使用httponly标志解决此问题.
  • iOS:有一些修改会改变webView行为以支持cookie.但他们似乎无法使用iOS 6和PhoneGap 2.5:https://groups.google.com/forum/ fromgroups =#!topic / phonegap/ZJE1nxX63ow
  • 默认情况下,AppDelegate.m(v2.5)中似乎启用了Cookie.

cookies xmlhttprequest cordova

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

以JSON格式POST数据

我有一些数据需要转换为JSON格式,然后用JavaScript函数POST它.

<body onload="javascript:document.myform.submit()">
<form action="https://www.test.net/Services/RegistrationService.svc/InviteNewContact" method="post" name="myform">
  <input name="firstName" value="harry" />
  <input name="lastName" value="tester" />
  <input name="toEmail" value="testtest@test.com" />
</form>
</body>
Run Code Online (Sandbox Code Playgroud)

这是帖子现在的样子.我需要它以JSON格式提交值并使用JavaScript进行POST.

javascript post json xmlhttprequest

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

$ http不会在请求中发送cookie

我们正在使用AngularJS和Java Servlets开发RESTful Web服务.当用户登录时,我们的后端会向前端发送"Set-Cookie"标头.在Angular中,我们通过$cookies(ngCookie - module)访问标题并进行设置. 在此输入图像描述

现在用户已登录,他可以删除一些东西.因此,前端向后端发送GET请求.因为我们在不同的域上工作,所以我们需要设置一些CORS Headers,而Angular会在实际的GET请求之前执行OPTIONS请求:

选项要求: 选项请求

GET请求 GET请求

我们通过$ http模块在Angular中执行此操作,但它不会发送包含的cookie JSESSIONID.

如何启用Angular发送cookie?

html5 webkit xmlhttprequest angularjs

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

使用XMLHttpRequest加载JSON文件时,Firefox中的"格式不正确"错误

当我的页面上的JavaScript加载包含JavaScript Object Notation格式的对象的文本文件时,我在Firefox 3.0.7的错误控制台中收到"格式不正确"的错误.如果文件只包含JSON对象,则会产生错误.如果我将对象包装在<document> </ document>标记中,则不会产生错误.请求以任何一种方式成功,所以我可以忽略它,但我不希望我的错误日志填满这些消息.

以下是一些示例代码来说明问题.首先,名为"data.json"的"格式不正确"的文件:

{ a: 3 }
Run Code Online (Sandbox Code Playgroud)

现在加载文件的一些代码:

var req = new XMLHttpRequest();
req.open("GET", "data.json");
req.send(null);
Run Code Online (Sandbox Code Playgroud)

这会在Firefox错误控制台中产生以下错误:


格式不正确的文件://path/to/data.json行:1
{a:3}
- ^

如果data.json被修改为:

<document>{ a: 3 }</document>
Run Code Online (Sandbox Code Playgroud)

没有错误.我认为它是抱怨,因为普通的JSON文件不是一个格式良好的XML文档,所以我尝试在"发送"调用之前覆盖MIME类型以强制它作为纯文本加载,但这不起作用.

var req = new XMLHttpRequest();
req.open("GET", "data.json");
req.overrideMimeType("text/plain");
req.send(null);
// Still produces an error!
Run Code Online (Sandbox Code Playgroud)

我将继续将我的JSON数据包装在XML文档中以解决XMLHttpRequest正在执行的任何验证,但我想知道是否有任何方法可以强制它只是不加批判地加载纯文本而不是尝试验证它.或者,除了XMLHttpRequest之外还有另一种加载数据的方法可以用于纯文本吗?

javascript firefox xmlhttprequest mime-types

69
推荐指数
3
解决办法
9万
查看次数

Google Chrome扩展程序中的网页搜寻(JavaScript + Chrome API)

使用JavaScript以及可用的更多技术从Google Chrome扩展程序中执行网页刮取当前未打开的标签的最佳选项有哪些.其他JavaScript库也被接受.

重要的是掩盖抓取行为就像普通的Web请求一样.没有AJAX或XMLHttpRequest的指示,如X-Requested-With: XMLHttpRequestOrigin.

必须可以从JavaScript访问已删除的内容,以便在扩展中进一步操作和呈现,最有可能是作为字符串.

在任何WebKit/Chrome特定的API中是否有任何钩子:s可用于制作正常的Web请求并获取操作结果?

var pageContent = getPageContent(url); // TODO: Implement
var items = $(pageContent).find('.item');
// Display items with further selections
Run Code Online (Sandbox Code Playgroud)

Bonus-points使这项工作从磁盘上的本地文件开始,用于初始调试.但如果这是唯一的一点是停止解决方案,那么就忽略奖励积分.

javascript google-chrome xmlhttprequest google-chrome-extension web-scraping

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

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