我试图通过我的应用程序发布带有附件映像的消息,所以我使用了以下代码:
function yamPost(mytoken) {
var msg_Body = jQuery("#myBody").val();
var imgData = new FormData();
var files = $("#attachement").get(0).files;
if (files.length > 0) {
imgData.append("attachement1", files[0]);
}
yam.platform.request(
{
url: "messages.json",
method: "POST",
network: "myNetwork",
header:{
authorization: "Bearer " + mytoken,
},
data: {
body: msg_Body,
attachment1: imgData
},
contentType: "multipart/form-data",
success: function (feedResult) {
console.log("- Yeaaahhh");
console.log(feedResult);
debugger;
},
error: function (msg) {
console.log("- Can't post message with attachement");
debugger;
}
});
}我犯了错误:
“未登录的TypeError:非法调用”
我也尝试使用pending_attachment,但我也遇到了同样的问题或http500内部服务器错误.谁能把他怎么做的代码发出来。
编辑
我尝试了一种发送数据的新方法:
我没有发送FormData,而是使用以下方法:
function readBinary() {
var reader = new FileReader();
reader.onloadend = function () {
yamPost(reader.result, token);
}
reader.readAsBinaryString(document.getElementById("attachement").files[0]);
}每次我这么做,我都会遇到这样的例外:
“没有‘访问-控制-允许-来源’”
但是,如果我不包括附件(、attachment1: imgData或binaryFileOutput),消息就会发布!
发布于 2015-06-23 15:17:20
我终于找到了一个答案,实际上,使用FormData对象是正确的,但我使用它的方式是,您必须附加在同一个FormData对象上发送的所有属性,就像这个thread一样,下面是神奇的代码:
function YamPostImage() {
var myData = new FormData();
myData.append('body', "my app images");
myData.append('attachment1', document.getElementById("attachement").files[0]);
yam.platform.request(
{
url: "messages.json",
method: "POST",
network: "my-network",
data: myData,
cache: false,
contentType: false,
processData: false,
success: function (feedResult) {
console.log("- Yeaaahhh");
debugger;
},
error: function (msg) {
console.log("- Can't post message with attachement");
debugger;
}
});}
https://stackoverflow.com/questions/30638898
复制相似问题