Это досадная проблема, и я не думаю, что эта проблема есть только у IE.В основном у меня есть сервер Node.js, с которого я делаю междоменные вызовы, чтобы получить некоторые данные JSON для отображения.
Это должен быть вызов JSONP, и я даю обратный вызов в URL.Я не уверен, как это сделать?
Итак, на сайте (domainA.com) есть HTML-страница с таким JS-скриптом (все отлично работает в Firefox 3):
<script type="text/javascript">
var jsonName = 'ABC'
var url = 'http://domainB.com:8080/stream/aires/' //The JSON data to get
jQuery.getJSON(url+jsonName, function(json){
// parse the JSON data
var data = [], header, comment = /^#/, x;
jQuery.each(json.RESULT.ROWS,function(i,tweet){ ..... }
}
......
</script>
Теперь мой сервер Node.js очень прост (я использую экспресс):
var app = require('express').createServer();
var express = require('express');
app.listen(3000);
app.get('/stream/aires/:id', function(req, res){
request('http://'+options.host+':'+options.port+options.path, function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body); // Print the google web page.
res.writeHead(200, {
'Content-Type': 'application/json',
'Cache-Control': 'no-cache',
'Connection': 'keep-alive',
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Credentials': 'true'
});
res.end(JSON.stringify(JSON.parse(body)));
}
})
});
Как я могу изменить эти два, чтобы они работали с междоменным GET в IE?Я искал в Интернете, и, кажется, есть несколько разных вещей, как jQuery.support.cors = true;
, который не работает.Там также, кажется, много длинных обходных путей.
Не существует настоящего «идеального» шаблона проектирования, который я смог найти для такого типа вещей.
Поскольку я контролирую как веб-страницу, так и междоменную веб-службу, которую я отправляю, как лучше всего внести изменения, чтобы обеспечить совместимость со всеми версиями IE, а также с FireFox, Opera, Chrome и т. Д.?
Ура!