我创建了一个简单的表单,其中我有一个组合框,当我选择任何东西时,我把一个函数放在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
- &GT;它在crome和ff以及其他所有浏览器中工作正常,但在IE中它无法正常工作
有任何帮助吗? 谢谢,
答案 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'
};
抱歉我的英文