2014-06-17 3 views
0

JSONLint를 사용하여 유효성이 검사 된 정적 json 파일 myjson.json이 있습니다.백본 : 컬렉션에 정적 json 파일을 추가 할 때 오류가 발생했습니다.

내가 컬렉션에 데이터를 추가하려면이 정적 JSON을 사용하려고하지만이 같은 오류가 계속 :

XMLHttpRequest cannot load file:///C:/Testing/app/scripts/src/myjson.json. Received an invalid response. Origin 'null' is therefore not allowed access.

을 페치에서 success()가 발사되지 않는 이유는 확실하지 않다 .

내 폴더 구조는 다음과

->index.html 
->app 
    ->scripts 
     ->src 
      ->main.js 
      ->myjson.json 
     ->views 
      ->app.js 
     ->models 
      ->ModelAndCollection.js 

내부 ModelAndCollection.js과 같습니다

define(['backbone'], function(Backbone) { 

    var TheModel = Backbone.Model.extend({ 

    }); 

    var TheCollection = Backbone.Collection.extend({ 
    model: TheModel, 

    url: './app/scripts/src/item-data.json' 
    }); 

    return TheCollection; 

}); 

내부 App.js

define(['backbone', '../models/ModelAndCollection'], function(Backbone, ModelAndCollection) { 

    var App = Backbone.View.extend({ 
    initialize: function() { 

     this.collection = new ModelAndCollection(); 

     console.log('initialize!!!'); 

     this.collection.fetch({ 
     success: function (data) { 
      console.log(data); 
     }, 
     error: function() { 
      console.log('error'); 
     } 
     }); 
    } 
    }); 

    return App; 

}); 

답변

0

이것은 당신이없이 실행하는 문제처럼 보인다 서버 및 파일 시스템에서 AJAX로드 파일을 시도합니다.

웹 서버에서이 응용 프로그램을 실행하면 해결됩니다. xampp을 설치하는 것이 가장 쉽습니다. Windows 또는 Mac/Linux에 설치 한 경우 nodejsnpm install -g http-server을 설치 한 다음 8080

그런 다음 모든 것이 해결됩니다 : 당신이 당신의 파일을 호스팅하고 콘솔에

http-server

가 포트 8080에 서버를로드 작성하고 로컬 호스트에서 도달 할 수있는 디렉토리.

행운을 빈다.

+0

감사합니다. 나는 그것을 깨닫지 못했다. 서버에 대한 ajax 호출없이 컬렉션에 .json 파일을 추가하는 방법이 있습니까? 이것은 정적 파일을 사용한 첫 번째 시도입니다. – Mdd

+0

스크립트 탭이나 이니셜 라이저로 페이지 자체에 추가 할 수 있지만 가장 좋은 방법은 웹 서버입니다. – gmaliar

관련 문제