我正在尝试使用下面的代码创建一个新的要点(一切正常,除非我尝试使文件名动态。除了文件名之外,其他所有变量替换都有效。我无法弄清楚它为什么会破坏。
var fn = "textfile.txt";
function createGist(token,content,description,shopName,filename){
$.ajax({
url: 'https://api.github.com/gists',
type: 'POST',
beforeSend: function(xhr) {
xhr.setRequestHeader("Authorization", "token " + token);
},
data: JSON.stringify({"description": description,"public": false,"files": {fn: {"content": content }}})
}).done(function(response) {
console.log(response);
GM_setValue(shopName,response.id);
});
}
文件名变量唯一不起作用的部分(也就是用实际的字符串代替它)
答案 0 :(得分:1)
假设fn
应该是文件名。您需要替换:
"files": {fn: {"content": content }}}
带
"files": files
,其中
var files = {};
files[filename] = {"content": content};
因为对象文字中的键不能是变量的值。在旧代码中,文件名始终为fn
。
这里需要澄清的是包含建议更改的整个代码:
var fn = "textfile.txt";
function createGist(token,content,description,shopName,filename){
var files = {};
files[filename] = {"content": content};
$.ajax({
url: 'https://api.github.com/gists',
type: 'POST',
beforeSend: function(xhr) {
xhr.setRequestHeader("Authorization", "token " + token);
},
data: JSON.stringify({"description": description,"public": false,"files": files})
}).done(function(response) {
console.log(response);
GM_setValue(shopName,response.id);
});
}