小编ora*_*van的帖子

UIWebView中的PUT或POST类型的Ajax无法通过HTTP正文

我正在我的应用程序的UIWebView中打开一个简单的HTML文档:

<h3>Testing Put</h3>
<form id="testPut" action="onPut">
    <div>
        <p><input type="text" id="putValue" name="putValue" value="some value string goes here" size="100"/></p>
        <p><input type="submit" value="Submit via PUT"/></p>
    </div>
</form>

<script>
$('#testPut').submit(function(ev) {
    ev.preventDefault();
    var value = $('#putValue').val();

    $.ajax({
        type: "PUT",
        url: "data/info/put",
        contentType: "text/plain; charset=utf-8",
        data: encodeURIComponent(value),
        dataType: "text"
    });
});
</script>
Run Code Online (Sandbox Code Playgroud)

为了简单起见,我从代码中省略了成功和错误处理程序,因为我的问题与真正回复请求无关。

我正在使用jQuery 1.10.2,但是使用纯XMLHttpRequest对象时却得到完全相同的结果。

由于这是Ajax请求无法被UIWebViewDelegate方法捕获的已知问题,因此我决定创建一个非常简单的后代NSURLProtocol并将其注册到控制器的-viewDidLoad方法中:

@implementation MyProtocol

+ (BOOL)canInitWithRequest:(NSURLRequest *)request {
    // only "data/info" requests are welcome
    NSRange range = [[request.URL absoluteString] rangeOfString:@"data/info"];
    return NSNotFound != …
Run Code Online (Sandbox Code Playgroud)

javascript ajax uiwebview nsurlrequest ios

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

标签 统计

ajax ×1

ios ×1

javascript ×1

nsurlrequest ×1

uiwebview ×1