jquery不在IE中发布数据

时间:2012-07-30 18:42:53

标签: php jquery

我创建了一个简单的表单,其中我有一个组合框,当我选择任何东西时,我把一个函数放在onchange事件上,所以它的调用。

然后我通过jquery

将这些数据发送到一个帮助文件中
<script type="text/javascript">
$.noConflict();
function Searchwine(obj,str) {  
{queryString: ""+str+""}, function(data){           
    jQuery.post("http://www.site.com/search/helper/autosuggest.php", {queryString: ""+str+""}, function(data){          
        if(data.length >0) {
jQuery('#windatano').html(data);
}
</script>

我通过javascript使用此代码在autosuggest中发布数据,并在windatano id

中打印jquery的重播

- &GT;它在crome和ff以及其他所有浏览器中工作正常,但在IE中它无法正常工作

有任何帮助吗? 谢谢,

3 个答案:

答案 0 :(得分:1)

您未正确使用jQuery。

正确的语法是(对于POST)

$.post([URL], {
        var: value,
        var2: value
    }, function(data) {
        //callback goes here
    }
);

如果您想传递查询字符串,就好像它是GET一样,只需在?之后将其附加到网址。

E.G:

"http://www.site.com/search/helper/autosuggest.php?" + str

答案 1 :(得分:1)

IE不支持跨域ajax调用,无论其是否为getJSON。我学到了很难...我最后添加了一个本地php文件,使用curl来获取结果并将它们返回到脚本中,这是使用跨域请求的唯一方法。

答案 2 :(得分:0)

你不能做跨域的ajax请求,如果请求url在另一个域中,这个失败,如果域是相同的,使用相对路径:

jQuery.post("/search/helper/autosuggest.php"....

如果您需要跨域ajax请求,则必须使用jsonp(http://api.jquery.com/jQuery.getJSON/#jsonp)

如果你使用post方法,queryString定义一个get vars,你需要使用数据选项

jQuery.ajax({
    url: '/search/helper/autosuggest.php',
    type: 'POST',
    data: data,
    sucess: function (data) {
         if (data) jQuery('#windatano').html(data);
    }
});

当数据可以是对象格式时:

var data = {
    a_var = 'value',
    other_var: 'other value'
};

抱歉我的英文