在python 2.7中使用Flask解决CORS问题,我需要在ext.js中显示响应
Using Flask in python 2.7 to resolve the CORS issue, I need to display the response in ext.js
这是我的实现,
full_url = url + '?' + params
req = urllib2.Request(full_url, params)
req.add_header('Content-Type', 'application/javascript')
req.add_header('Access-Control-Allow-Origin','*')
req.add_header('Accept', 'application/javascript')
req.add_header('x-lang', 'en')
req.add_header('x-app-version', '1.2.3')
req.add_header('x-consumer-key', 'abc')
req.add_header('x-source', 'web')
req.add_header('x-device-id', 'abc-2501015753736970469271537365900144030')
req.add_header('x-signature', signature)
req.add_header('X-Content-Type-Options', 'nosniff')
req.add_header('x-request-id', request)
req.add_header('x-timestamp', timeStamp)
response = urllib2.urlopen(req)
result = response.read()
result = result.decode('latin-1')
respjson = json.loads(result)
return respjson
正在读取 ext.js
中的输出
var script = document.createElement("script");
script.setAttribute("src", url);
script.setAttribute("type", "text/javascript");
script.setAttribute("id", trans.scriptId);
document.getElementsByTagName("head")[0].appendChild(script);
提前致谢。
浏览器中显示错误“已加载,即使它的 MIME 类型(“application/json”)不是有效的 JavaScript MIME”
[浏览器错误][1]
简答:
在 ExtJS 中使用 JSONP 而不是 JSON。
大量附加信息
从 ExtJS
检索 JSON 的更好方法
但这不是我假设的问题。
假设您有 JSON 并且您正在尝试填充商店。
而不是将 JSON 注入 DOM,您可以使用:
Ext.StoreManager.get('storeId').load(JSON);
// or for the store of a grid
Ext.ComponentQuery.query('grid')[0].getStore().load(JSON);
// or for xtype main
Ext.first('main').getViewModel().set('initData', JSON);
所有这些方法都会将数据导入 ExtJS 应用程序
正在检索数据
将数据导入 ExtJS 通常使用
Ext.Ajax.request({
url: full_url,
header: ...
success: success_fn,
scope: this
})
或直接在您的 model/store
这是我的实现,
full_url = url + '?' + params
req = urllib2.Request(full_url, params)
req.add_header('Content-Type', 'application/javascript')
req.add_header('Access-Control-Allow-Origin','*')
req.add_header('Accept', 'application/javascript')
req.add_header('x-lang', 'en')
req.add_header('x-app-version', '1.2.3')
req.add_header('x-consumer-key', 'abc')
req.add_header('x-source', 'web')
req.add_header('x-device-id', 'abc-2501015753736970469271537365900144030')
req.add_header('x-signature', signature)
req.add_header('X-Content-Type-Options', 'nosniff')
req.add_header('x-request-id', request)
req.add_header('x-timestamp', timeStamp)
response = urllib2.urlopen(req)
result = response.read()
result = result.decode('latin-1')
respjson = json.loads(result)
return respjson
正在读取 ext.js
中的输出 var script = document.createElement("script");
script.setAttribute("src", url);
script.setAttribute("type", "text/javascript");
script.setAttribute("id", trans.scriptId);
document.getElementsByTagName("head")[0].appendChild(script);
提前致谢。
浏览器中显示错误“已加载,即使它的 MIME 类型(“application/json”)不是有效的 JavaScript MIME”
[浏览器错误][1]
简答: 在 ExtJS 中使用 JSONP 而不是 JSON。
大量附加信息
从 ExtJS
检索 JSON 的更好方法但这不是我假设的问题。
假设您有 JSON 并且您正在尝试填充商店。
而不是将 JSON 注入 DOM,您可以使用:
Ext.StoreManager.get('storeId').load(JSON);
// or for the store of a grid
Ext.ComponentQuery.query('grid')[0].getStore().load(JSON);
// or for xtype main
Ext.first('main').getViewModel().set('initData', JSON);
所有这些方法都会将数据导入 ExtJS 应用程序
正在检索数据
将数据导入 ExtJS 通常使用
Ext.Ajax.request({
url: full_url,
header: ...
success: success_fn,
scope: this
})
或直接在您的 model/store