-1

我有一个 HTTPS 页面,在那个安全页面上,我正在尝试实现 jquery 自动完成插件。

我的代码如下:

function stateAutoComplete(id, widthParam){

widthParam = typeof widthParam !== 'undefined' ? widthParam : '188px';

jQuery( "#"+id).autocomplete({
    source: function( request, response ) {
        jQuery.ajax({
            url: base_url+"/stateSearchJSON",
            dataType: "jsonp",
            data: {                 
                maxRows: 10,
                startsWith: request.term
            },
            success: function( data ) {                                 

            response( jQuery.map( data.states, function( item ) {
                    return {
                        value: item.stateName,
                        label: item.stateName
                    }
                }));
                jQuery('.ui-autocomplete').css('width', widthParam);

            }
        });
    },

我正在使用相同的来源策略使用 jquery ajax 调用获取 json 响应,但是当我在 firebug net 选项卡中看到响应时,我得到空响应并且响应 url 变为红色。

我不知道为什么会发生这种情况,因为我在 http 页面上使用了相同的代码并且它在 http 页面上工作得非常好,那么为什么这个问题会出现在 https 页面上?

谁能帮帮我?

提前致谢

4

1 回答 1

0

您必须确保请求来自:
http ://example.com/requestingpage.html到http://example.com/stateSearchJSON

而不是:
http ://example.com/requestingpage.html到https://example.com/stateSearchJSON

http://example.com/requestingpage.htmlhttps://differenturl.com/stateSearchJSON

否则,您将不得不添加一个回调并使用 jsonp (看起来您正在使用它)。如果您不需要它,您可能需要删除“json

于 2014-01-29T21:50:31.050 回答