如何在 javascript/jquery 中发出 ajax 请求
Posted
技术标签:
【中文标题】如何在 javascript/jquery 中发出 ajax 请求【英文标题】:how to make a ajax request in javascript/jquery 【发布时间】:2014-03-27 04:59:59 【问题描述】:我是 javascript 和 jQuery 的新手。我想将图像发送到 RTTI 服务器。我在本机 ios 中完成了相同的任务,如下所示。
NSData *checkData = [NSData dataWithBytes:[self getImageFileBuffer]length:self.imageFileBufferSize];
NSString *extractionURLString = [[NSUserDefaults standardUserDefaults] valueForKey:@"serverAddress"];
NSURL *checkExtractionServerURL = [NSURL URLWithString:[NSString stringWithFormat:@"%@/mobilesdk/api/CheckDeposit",extractionURLString]];<br/>
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:checkExtractionServerURL cachePolicy:NSURLRequestReloadRevalidatingCacheData timeoutInterval:30];
[urlRequest setHTTPMethod:@"PUT"];
[urlRequest setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[urlRequest setValue:@"image/tiff" forHTTPHeaderField:@"Content-Type"];
[urlRequest setHTTPBody:checkData];<br/>
NSURLConnection *checkConn = [[NSURLConnection alloc] initWithRequest:urlRequest delegate:self startImmediately:NO];
[checkConn scheduleInRunLoop:[NSRunLoop mainRunLoop] forMode:NSRunLoopCommonModes];
[checkConn start];
我必须在 JavaScript/jQuery 中完成上述任务。我尝试了很多,但没有得到解决方案。我的 JavaScript 代码如下。
var xhr4 = new XMLHttpRequest();
xhr4.open("POST", URL4, true);
xhr4.setRequestHeader('Content-Type', 'image/tiff');
xhr4.setRequestHeader('Accept','application/json');
xhr4.setRequestHeader('Content-Length',imageObjectData.length);
xhr4.onload = function (e4)
alert(e4.target.responseText);
;
xhr4.send(imageObjectData);
请任何人帮助我。 提前致谢。
【问题讨论】:
【参考方案1】:使用onreadystatechange 代替onload
之类的,
var xhr4 = new XMLHttpRequest();
xhr4.open("POST", URL4, true);
xhr4.setRequestHeader('Content-Type', 'image/tiff');
xhr4.setRequestHeader('Accept','application/json');
xhr4.setRequestHeader('Content-Length',imageObjectData.length);
xhr4.onreadystatechange = function () // use onreadystatechange
alert(xh4.responseText); // use xh4.responseText
;
xhr4.send(imageObjectData);
【讨论】:
【参考方案2】:使用beforeSend
设置jquery Ajax 中的标头。
$.ajax(
beforeSend: function(xhrObj)
xhrObj.setRequestHeader("Content-Type","image/tiff");
xhrObj.setRequestHeader("Accept","application/json");
type: "PUT",
url: URL4,
processData: false,
data: jsonData,
dataType: "json",
success: function(json)
// do something with response `json`...
);
【讨论】:
以上是关于如何在 javascript/jquery 中发出 ajax 请求的主要内容,如果未能解决你的问题,请参考以下文章
JavaScript/jQuery:在 CodePen 中设置 IP 地理定位 API
web前端--html/css/javaScript/jQuery学习总结
JavaScript / jQuery:如何在 Firefox 中获取选定的文本
如何在 JavaScript / jQuery 中合并两个函数?