【问题标题】:how to make a ajax request in javascript/jquery如何在 javascript/jquery 中发出 ajax 请求
【发布时间】: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);

请任何人帮助我。
提前致谢。

【问题讨论】:

    标签: javascript jquery ios objective-c ajax


    【解决方案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`...
              }
      });
      

      【讨论】:

        猜你喜欢
        • 2020-12-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-19
        • 2013-10-31
        相关资源
        最近更新 更多