0
當我嘗試發送跨域請求google.docs URL它的工作原理,但是當我嘗試把它發送到服務器上的其他領域,它提供了錯誤:跨域AJAX請求頭
XMLHttpRequest cannot load http://katrin.kit.edu/adei/services/getdata.php?db_server=orca&db_name=orca_process&db_group=Data_001_PAC_dat&db_mask=0,1,2,3,4,5,6,7&window=-1. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8000' is therefore not allowed access.
但是,當我嘗試google.doc它返回正常的解析對象沒有任何錯誤。
我的要求:
function ajax(url, callback, filetype, type) {
filetype = filetype ? filetype : 'json';
type = type ? type : 'GET';
var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
var success = function(e) {
var items = '';
switch(filetype) {
case 'csv': items = csv(xhr.responseText); break;
case 'json': items = JSON.parse(xhr.responseText); break;
default: items = xhr.responseText; break;
}
callback(items);
}
var error = function(e) { console.log('Please enabled CORS using access-control-allow-origin'); }
if (window.XDomainRequest && !sameOrigin(url)) { xhr = new XDomainRequest(); xhr.onload = success; }
if (filetype == 'image' && xhr.overrideMimeType) { xhr.overrideMimeType('text/plain; charset=x-user-defined'); }
xhr.onerror = error;
xhr.onreadystatechange = function(e) { if (xhr.readyState == 4 && xhr.status == 200) { success(e); } }
try {
if ('withCredentials' in xhr) { xhr.open(type, url, true); }
else { xhr.open(type, url); }
xhr.send(null);
}
catch(e) { error(e); }
}
// check if url is same domain
function sameOrigin(url){
var split = url.split('/');
if (split[0]+'//' == window.location.protocol+'//') { return split[2] != window.location.host ? false : true; }
else { return true; }
}
// calculate length of object
function size(obj) {
var size = 0, key;
for (key in obj) {
if (obj.hasOwnProperty(key)) size++;
}
return size;
}
我試圖改變標題,但仍有問題:
這裏是標頭MYSERVER網址:
這裏頭的谷歌文檔的網址:
其次我嘗試設置myserve R-本地主機。添加了一些標題來響應,如:
def index(request):
data = {
'title': getattr(settings, 'TITLE'),
'description': getattr(settings, 'DESCRIPTION')
}
response = render_to_response('dimension/index.html', data, context_instance=RequestContext(request))
response['Access-Control-Allow-Origin'] = '*'
response['Access-Control-Allow-Methods'] = 'POST, GET, OPTIONS'
response['Access-Control-Max-Age'] = '1000'
response['Access-Control-Allow-Headers'] = '*'
return response
但我認爲問題與我的本地主機服務器無關。
而我試過jsonp庫。它的工作原理,但實際上只有json文件。但我需要像csv一樣的不同格式。
在此先感謝!
我們無法看到圖像。請發佈文字而不是圖片。順便說一下,可以用jsonp請求獲取csv文件('文本')。事實上,使用jQuery非常簡單。 –
@OscarPaz,你可以在這裏寫下如何使用jsonp來解析任何數據類型。因爲我搜索了很多網站,發現它是不可能的(我的意思是如果csv文件放入1個json對象中就可能了:{obj1:'csv'} –