Angular - Cross原始请求仅支持协议方案 - 需要解决方法在本地运行$ http

时间:2016-07-05 09:30:00

标签: javascript angularjs cross-domain

已经经历了很多论坛,甚至在stackoverflow中为错误解决方法: XMLHttpRequest无法加载file:/// ....只有协议方案支持交叉源请求:http,data,chrome, chrome-extension,https,chrome-extension-resource。

虽然有像使用Node.js的解决方案,app和source需要托管在http服务器中,我需要一个解决方法,以便我可以在 $ http get() >本地

我也试过,用 - allow-file-access-from-files --disable-web-security 启动chrome,但没有运气。

那么,任何人都可以帮助我在没有服务器的情况下在本地运行我的$ http get()吗?或者是否必须去服务器?

以下是我的代码。

app.factory('jsonFactory', function($http) { 
var obj = {};
$http.get("response.json").then(function (response) {
    obj = response.data;
});
return {
    get: function () {
        return obj;
    }
};});

1 个答案:

答案 0 :(得分:1)

尝试使用纯javascript filereader



function readSingleFile(e) {
  var file = e.target.files[0];
  if (!file) {
    return;
  }
  var reader = new FileReader();
  reader.onload = function(e) {
    var contents = e.target.result;
    displayContents(contents);
  };
  reader.readAsText(file);
}

function displayContents(contents) {
  var element = document.getElementById('file-content');
  element.innerHTML = contents;
}

document.getElementById('file-input')
  .addEventListener('change', readSingleFile, false);

<input type="file" id="file-input" />
<h3>Contents of the file:</h3>
<pre id="file-content"></pre>
&#13;
&#13;
&#13;

请参阅代码段@ How to open a local disk file with Javascript?

知道它在角度应用中看起来很糟糕。没有项目经理会强制执行这样的要求。