2015-04-12 136 views
3

我正在使用intl-tel-input,國際電話號碼的jQuery插件,用於我的一個項目。該插件聲稱「自動將輸入佔位符設置爲所選國家/地區的示例編號」,但我無法使其正常工作。到目前爲止,我嘗試了兩件事:國際電話號碼的jQuery插件:國旗和電話佔位符丟失

1)我下載了庫並從我的代碼中引用了它的JS文件之一(類似於the demo)。這是我的JS文件的一個片段:

$("#phone").intlTelInput({ 
    allowExtensions: false, 
    autoFormat: true, 
    autoHideDialCode: false, 
    autoPlaceholder: true, 
    defaultCountry: "ng", 
    ipinfoToken: "yolo", 
    nationalMode: true, 
    numberType: "MOBILE", 
    onlyCountries: ['ng', 'us', 'gb'], 
    preferredCountries: [], 
    utilsScript: "/projects/intl-tel-input-master/lib/libphonenumber/build/utils.js" 
    }); 

,但我得到了在Chrome的JS控制檯以下錯誤:

的XMLHttpRequest無法加載文件:///項目/ INTL-TEL-輸入 - 主/ LIB/libphonenumber /建造/ utils.js。協議方案僅支持交叉源請求:http,data,chrome,chrome-extension,https,chrome-extension-resource。

2)我把庫文件夾放在服務器上,並且引用utils.js文件和服務器url(http://web.mit.edu/aizhan/www/intl-tel-input-master/lib/libphonenumber/build/utils.js)。這仍然沒有我的機器上工作,但它的工作原理與HTTP協議codepen但與HTPPS:

HTTP:http://codepen.io/atoregozh/pen/raEPbv
HTTPS:https://codepen.io/atoregozh/pen/MYMLXv

我的整體問題:我怎麼可能讓圖書館工作本地?我也有2個子問題:1)如何解決有關XMLHttpRequest加載的錯誤? (我從之前的其他帖子讀到關於它的信息,我不想搞亂安全設置); 2)爲什麼代碼通過HTTP工作,但不通過HTTPS?

我真的很感謝你的幫助。如果你想看到實際的項目代碼,the index.html file is hereJavascript file is here

回答

0

問題:我該如何讓圖書館在當地工作?

您在Yeoman,ExpressJs或IIS Express中使用。

e.g(運行服務器): 自耕農服務器

我測試通過IIS Express中,演示文件是正確的。

問題:如何解決有關XMLHttpRequest加載的錯誤?

你在另一個服務器(跨域)加載資源,我更喜歡在curent服務器中加載代理。要解決此問題,請參閱'Loading cross domain html page with jQuery AJAX'

另一個問題:爲什麼代碼通過HTTP工作,但不通過HTTPS?

如果您看到瀏覽器控制檯,包括下面的代碼。

Loading mixed (insecure) display content "" on a secure page. 
Blocked loading mixed active content "http://web.mit.edu/aizhan/www/intl-tel-input-master/build/js/intlTelInput.js" 

解決您在Firefox link

如果HTTPS頁面包括HTTP內容問題,HTTP部分可以被攻擊者讀取或修改,即使主頁面通過HTTPS提供。

祝你好運。

+0

also'[什麼是JSONP所有關於](http://stackoverflow.com/questions/2067472/what-is-jsonp-all-about)' –

+0

可以直接從CDN加載它們的github文檔中提供的 – Niraj