yammer 附件
Yammer attachement
我正尝试通过我的应用程序 post 发送带有附件图片的消息,所以我使用了此代码:
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;
}
});
}
我得到错误:
"Uncaught TypeError: Illegal invocation"
我也尝试使用 pending_attachment
但我遇到了同样的问题或 http500 内部服务器错误...
任何人都可以 post 他如何做的示例代码。
编辑
我尝试了一种发送数据的新方法:
我没有发送 FormData,而是使用了这个:
function readBinary() {
var reader = new FileReader();
reader.onloadend = function () {
yamPost(reader.result, token);
}
reader.readAsBinaryString(document.getElementById("attachement").files[0]);
}
每次我这样做都会遇到这个异常:
"No 'Access-Control-Allow-Origin'"
但是,如果我不包含附件(attachment1:imgData 或 binaryFileOutput),则消息是 posted !
终于找到答案了,
事实上,使用 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;
}
});
}
我正尝试通过我的应用程序 post 发送带有附件图片的消息,所以我使用了此代码:
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;
}
});
}
我得到错误:
"Uncaught TypeError: Illegal invocation"
我也尝试使用 pending_attachment
但我遇到了同样的问题或 http500 内部服务器错误...
任何人都可以 post 他如何做的示例代码。
编辑
我尝试了一种发送数据的新方法:
我没有发送 FormData,而是使用了这个:
function readBinary() {
var reader = new FileReader();
reader.onloadend = function () {
yamPost(reader.result, token);
}
reader.readAsBinaryString(document.getElementById("attachement").files[0]);
}
每次我这样做都会遇到这个异常:
"No 'Access-Control-Allow-Origin'"
但是,如果我不包含附件(attachment1:imgData 或 binaryFileOutput),则消息是 posted !
终于找到答案了, 事实上,使用 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;
}
});
}