2

我创建了一个简单的表单,当我选择任何东西时,我有一个组合框,我将一个函数放在 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在自动建议中发布数据并在windatano中打印jquery的重播id

--> 它在 crome 和 ff 和其他所有浏览器中工作正常,但在 IE 中它不工作

有什么帮助吗?谢谢,

4

3 回答 3

1

IE 不支持跨域 ajax 调用,不管它是否 getJSON。学到了艰难的方法...我最终添加了一个本地 php 文件,该文件使用 curl 来获取结果并将它们返回到脚本,这是使 ie 处理跨域请求的唯一方法。

于 2012-07-30T20:23:12.380 回答
1

您不正确地使用 jQuery。

正确的语法是(对于 POST)

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

如果您想像 GET 一样传入查询字符串,只需将其附加到?.

例如:

"http://www.site.com/search/helper/autosuggest.php?" + str
于 2012-07-30T18:46:54.560 回答
0

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

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

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

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

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'
};

对不起我的英语

于 2012-07-31T06:17:31.173 回答