Я немного новичок в JQuery и ajax, поэтому извиняюсь, если это вопрос новичков.
Я пытаюсь использовать ajax из локального файла для доступа к сети (например, получение текстового файла).
Я не использую IIS или что-то еще, простой файл с моего жесткого диска (и мне нужно, чтобы он оставался таким образом).
Проверено как на IE8, так и на Chrome (версия 11.0.696.60).
Вот несколько javascript для иллюстрации:
// use ajax to load from the web
$("#webText").click(function(){
$.get("http://www.w3schools.com/jquery/demo_ajax_load.txt", function(result){
alert(result);
});
Этот код пытается загрузить текстовый файл из Интернета - операция не работает как на IE, так и на хром (не дойдет до функции успеха).
Chrome уведомляет в консоли об ошибке "XmlHttpRequest не может загрузить _http://www.w3schools.com/jquery/demo_ajax_load.txt: Происхождение null не разрешено Access-Control-Allow-Origin"
// use ajax to load from a local file
$("#localText").click(function(){
$.get("demo_ajax_load.txt", function(result){
alert(result);
});
Этот код пытается загрузить из локального текстового файла.
IE: операция успешно завершена.
Chrome: не работает с той же ошибкой, что и выше.
В этот момент я думал, что невозможно связаться с сетью из локального файла, но затем я столкнулся с похожим вопросом: Ошибка XmlHttpRequest: Происхождение null не разрешено Access -контроль-Allow-Origin
Используя приведенные здесь примеры, я попытался:
// use ajax to load json object from the web
$("#webJSON").click(function(){
var url = 'http://www.panoramio.com/wapi/data/get_photos?v=1&key=dummykey&tag=test&offset=0&length=20&minx=-30&miny=0&maxx=0&maxy=150';
$.get(url, function(json) {
alert(json.photos[1].photoUrl);
}, "jsonp");
});
И этот код отлично работает на обоих браузерах. Таким образом, очевидно, что можно установить связь с веб-службой из локального файла.
Любые идеи?
BTW - меня больше интересует аспект IE этого, Chrome и другие браузеры - проблема.
Спасибо.