我正在寻找一种方法来传输任何文件类型的原始文件数据与任何可能的内容(我的意思是文件和文件内容都是用户生成的)两种方式在Backbone前端使用xhr/ajax调用对抗Django后端.
编辑:也许这个问题还不清楚......
如果在IDE(例如Sublime)中打开文件,则可以查看和编辑包含该文件的实际代码.我试图把THAT原始内容为JSON这样我就可以发送到浏览器,它可以被修改,然后发回.
我发布了这个问题,因为我的印象是因为这些文件的内容可以有效地使用任何编码语言,只是对内容进行字符串化并发送它似乎是一个易于破解或利用的脆弱解决方案.内容可以包含任意数量的',",{和}这似乎打破JSON格式字符,并逃避这些字符将离开代码中的文物,将有效地打破他们(不是吗?).
如果这个假设是错误的,那也是一个可以接受的答案(只要你能指出我忽略的是什么).
我正在开发的项目是一个基于浏览器的IDE,它将从服务器接收完整的文件结构.用户可以添加/删除文件,编辑这些文件的内容,然后将其更改保存回服务器.发送/接收都必须通过ajax/xhr调用来处理.
需要Underscore/jQuery的解决方案很好,如果有专门用于管理原始文件数据的东西,我可以引入额外的库.
我使用 Webpack 创建多个包,这些包加载到各自的 Django 应用程序中。所有前端(静态)资源都存储在 Django 框架外部的单独文件夹中,并且当 Webpack 运行时,每个包都会放入相应的静态子文件夹中。
我遇到的问题是使用文件加载器捆绑图像时。这些图像的导出位置应该是/common/static/[file],但是当样式表中替换 url 字符串时,它们需要指向/static/[file]。由于 Django 不会/common/作为路径的一部分公开,因此 img url 最终会指向一个不存在的位置(http://host/common/static/...而不是http://host/static/...)。
我以为我已经通过文件加载器(LINK)提供的“上下文”值找到了所需的答案,但我要么错误地理解了“上下文”的目的,要么错误地使用了它。
这是我的一些配置文件。我删除了一些不相关的部分,例如plugins、externals和resolve。
module.exports = {
context: __dirname,
entry: {
'./agent/static/agent_bundle': './ui/agent/entry.js',
},
output: {
path: './',
filename: '[name].js'
},
module: {
loaders: [{
test: /\.js(x)?$/,
loader: 'babel-loader',
exclude: /node_modules/,
query: {
presets: ['es2015']
}
},{
test: /\.(png|jpg)$/,
loader: 'url-loader?limit=8192&name=common/static/[name]-[hash].[ext]&context=static',
},{
test: /\.less$/,
loader: 'style!css?sourceMap!less?sourceMap'
},{ …Run Code Online (Sandbox Code Playgroud)我一直在试图让一个相当简单的YouTube api集成在FF/IE中工作并且到目前为止没有运气.
这听起来像是一个范围问题或者在玩家初始化之前进行的调用,但我尝试过的一切都表明它不是这两件事之一.另外值得注意的是,一切都在(仅)Chrome中完美运行.
// Async api load per YT documentation...
var tag = document.createElement('script');
tag.src = "//www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
// Declare player and set basic functions...
var player
playVideo = function() { player.playVideo(); }
stopVideo = function() { player.stopVideo(); }
// YT Api ready function...
function onYouTubeIframeAPIReady() {
player = new YT.Player('player', {
videoId: "TkJcg4bmAYs",
events: {
'onStateChange': onPlayerStateChange
}
});
// After player object created, bind popup function to page anchors...
var popup = $('#video-popup') …Run Code Online (Sandbox Code Playgroud) javascript ×3
ajax ×1
backbone.js ×1
django ×1
html ×1
jquery ×1
json ×1
scope ×1
url ×1
webpack ×1
youtube-api ×1