跨域請求問題 求教
bing-search.html:1 XMLHttpRequest cannot load http://api.bing.com/qsonhs.aspx?q=a. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. ? ?有問題 ? ?不知道怎么解決啊 ? ?各位誰能幫幫我啊
bing-search.html:1 XMLHttpRequest cannot load http://api.bing.com/qsonhs.aspx?q=a. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. ? ?有問題 ? ?不知道怎么解決啊 ? ?各位誰能幫幫我啊
2016-03-31
舉報
2016-11-09
原生JS實現JSONP:
addEvent('search-input-text', 'keyup', function() {
? ? ? ? var searchText = getDOM("search-input-text").value;
? ? ? ? //供jsonp服務的url地址(不管是什么類型的地址,最終生成的返回值都是一段javascript代碼)
? ? ? ? //其實參數都是前端和后臺程序員規定的,前端傳過去,后端判斷獲取即可。
? ? ? ? var url = "http://api.bing.com/qsonhs.aspx?type=cb&cb=jsonpcallback&q=" + searchText;
? ? ? ? var script = document.createElement('script');
? ? ? ? script.setAttribute('src', url);
? ? ? ? // 把script標簽加入body,此時調用開始 ? ? ? ?
? ? ? ? document.getElementsByTagName('body')[0].appendChild(script);
? ? ? ? getDOM('search-suggest').style.top = getElementTop(getDOM('search-form')) + 38 + 'px';
? ? ? ? getDOM('search-suggest').style.left = getElementLeft(getDOM('search-form')) + 'px';
? ? ? ? getDOM('search-suggest').style.position = 'absolute';
? ? ? ? getDOM('search-suggest').style.display = 'block'; ? ? ? ?
? ? });
? ? function jsonpcallback(data) {
? ? ? ? var data = data.AS.Results[0].Suggests;
? ? ? ? var html = "";
? ? ? ? console.log(data);
? ? ? ? var html = "";
? ? ? ? for (var i=0;i<data.length;i++) {
? ? ? ? ? ? html += "<li>" + data[i].Txt + "</li>"
? ? ? ? }
? ? ? ? getDOM('search-result').innerHTML = html;
? ? };
2016-04-04
跨域導致的同源策略安全問題,因為你的頁面跟http://api.bing.com/這個域名不一樣被拒絕訪問,可以使用jsonp解決,或者把你的頁面部署成http://api.bing.com/bing-search.html