0

我有一些像这样工作的代码。

加载 Index.php 文件并从 mysql 数据库中提取信息以构建下拉跳转菜单。

使用该菜单时,将调用 jquery 并尝试将特定联系人从数据库加载到覆盖窗口中。

它工作正常,我最近没有改变任何东西。我查看了 chrome 中的错误,它们超出了我的知识范围。

这是错误 XMLHttpRequest cannot load http://www.google.com/jsapi。Access-Control-Allow-Origin 不允许 Origin [我的域]。jquery.min.js:6 未捕获的错误:NETWORK_ERR:XMLHttpRequest 异常 101

这是我的 jquery(我没有显示 php,因为它似乎工作正常)

$j('#finddist').change(function(e){ e.preventDefault();


var intRegex = /^\d+$/;

var isNumeric = this.value;
if(intRegex.test(isNumeric)) {
    var loadUrl = 'http://www.accumetrics.com/en?option=com_contactenhanced&view=contact&id='+this.value+'&tmpl=component&task=preview';
    var width = 340;
} else {
    var loadUrl = 'http://accumetrics.info/accumetrics.com.v3/us-distributors?tmpl=component&task=preview';
    var width = 940;
}

$j("#someDiv").dialog({
    autoOpen: false,
    modal:true,
    width: width,
    overlay : {
        background: '#000',
        opacity: '0.9'  
    },
    show: {
        effect: 'fade',
        duration: 700
    }
}); 

$j("#loading").html(ajax_load);

$j("#someDiv").load(loadUrl, null, function(responseText){  
    // alert("Response:\n" + responseText);  
    $j("#someDiv").dialog('open');
    $j("#loading").fadeOut(200);
});  

$j("#someDiv").dialog( "option", "position",[top,center]);

}); 
4

1 回答 1

0

Chrome 因该错误而对 jQuery 的调用大喊大叫。尝试在不同的浏览器中查看是否仍然出现错误,这可能只是现在存储在缓存中的错误调用。

趁我在这,不妨对你的jQuery AJAX应用有所帮助。

将您的数据分解为适当的字符串:

var loadUrl,loadData,width;

if(intRegex.test(isNumeric)) {
    loadUrl = 'http://www.accumetrics.com/en';
    loadData = {option:'com_contactenhanced', view:'contact', id:this.value, tmpl:'component', task='preview'};
    width = 340;
} else {
    loadUrl = 'http://accumetrics.info/accumetrics.com.v3/us-distributors';
    loadData = {tmpl:'component', task:'preview'};
    width = 940;
}

然后在负载中适当地应用它。

$j("#someDiv").load(loadUrl, loadData, function(responseText){

使用任何 jQuery AJAX 函数时,始终将数据与 URL 分离到适当的对象中。它不仅使它更容易维护,而且还允许 jQuery 形成适当的查询字符串,而不是强加给你。

于 2013-05-21T22:44:34.660 回答