jquery - 将内容类型指定为html的ajax请求

时间:2011-11-09 15:13:48

标签: jquery ajax

我正在使用现代的jquery 1.5 ajax请求。到同一域的页面。 我正在尝试使用油脂猴和jquery改进内部网站点的行为。

var jqxhr = $.ajax("anotherpage-response.html")
.success(function(data) {alert("cmp"); console.log(data);})
.error(function() { alert("error"); })
.complete(function() { alert("complete"); });

它当前以字符串形式返回。任何想法我怎么能得到它作为一个dom像对象我可以使用jquery选择器进行返回???

我认为我是fileType: html之类的东西,但它似乎不是ajax请求中的一个选项。也许我只需要正确阅读api ???

由于

3 个答案:

答案 0 :(得分:5)

您应该阅读有关此主题的jquery文档:http://api.jquery.com/jQuery.ajax/ 您正在寻找的内容可能如下: dataType

$.ajax({ 
    url: 'request.html', 
    succes: function(data){ 
        .. do something here! ..
    }, 
    dataType: 'html'
});

我希望这会有所帮助

答案 1 :(得分:3)

无论你将以纯文本的形式返回一个字符串。

来自dataType上的jQuery文档:

“”html“:以纯文本形式返回HTML;在插入DOM时,将评估包含的脚本标记。”

您可以随时将明文转换为dom对象..

$.ajax({ 
url: 'request.html', 
succes: function(data){ 
  $(data) // This is now (kind of) a DOM object that you can use jQuery selectors on
}, 
dataType: 'html'
});

答案 2 :(得分:0)

在jQuery 1.4及更低版本中,您可以通过传递dataType来指定内容类型。在更高版本中,jQuery会尝试为您确定内容类型。

尝试这样的事情:

$.ajax({
    url: "anotherpage-response.html", 
    success: function(response, status, xhr){ 
        var ct = xhr.getResponseHeader("content-type") || "";
        if (ct.indexOf(‘html’) > -1) {
            //handle html content
        }
        else if (ct.indexOf(‘json’) > -1) {      
            //handle json object
        } 
    }
});