Imgur api ajax : 没有图像数据被发送到 api
Imgur api ajax : No image data was sent to the api
我正在尝试通过 ajax 将图像上传到 imgur。
我正在使用 base64 编码的图像。
它显示没有数据发送,即使我可以在控制台中看到 base64 数据。
我得到的错误是:-
{"data":{"error":"No image data was sent to the upload api","request":"\/3\/image","method":"POST"},"success":false,"status":400}
应该用空白字符串替换 "data/jpeg" 或 "data/png" ??
我的代码:-
$(document).ready(function(){
function upload_to_imgur(img)
{
// $('body').text(img) ;
var data = new FormData() ;
data.append("image",img) ;
$.ajax({
url: "https://api.imgur.com/3/image",
type: "POST",
headers: {
"Authorization": "Client-ID a867bb291ca25d3" ,
},
dataType:"json" ,
contentType : "multipart/form-data;boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW",
processData:false,
data :data,
success: function(response) {
var photo = response.data.link;
$('body').text(photo) ;
}
});
}
function base64_image(img)
{
var reader = new FileReader() ;
reader.onload = function(e){
base64data = e.target.result ;
upload_to_imgur(base64data) ;
}
reader.readAsDataURL(img)
}
$('#submit_button').click(function(){
upload_to_imgur(document.getElementById('p_img_link1').files[0])
query_string = " \
INSERT INTO `cm_db_mg`.`products` (`p_list_img`, `p_img_link_1`, `p_img_link_2`, `p_title`, `p_c_s_id`, `p_description`, `p_tags`, `p_listPrice`, `p_mrp`, `p_publishStatus`, `p_publishType`, `p_sem`, `p_s_id`, `p_b_id`, `p_c_id`, `p_u_id_seller`, `p_cat_uniq`, `p_not_listed_cmnt`, `p_disclaimer`, `p_condition`, `p_return_allowed`, `created`, `updated`) \
VALUES ('', '', 'te', '', NULL, '', '', '', '-1', '', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', 'First Hand', 'F', '', '');"
}) ;
});
function upl_im(t) {
var file = t.files[0];
var fd = new FormData();
fd.append("image", file);
var xhr = new XMLHttpRequest();
xhr.open("POST", "https://api.imgur.com/3/image.json");
xhr.onload = function() {
var link_src=JSON.parse(xhr.responseText).data.link;
document.getElementById('res').style.backgroundImage = 'url('+link_src+')';
}
xhr.setRequestHeader('Authorization', 'Client-ID a867bb291ca25d3');
xhr.send(fd);
}
基本上我遇到了同样的问题,但是在使用 PHP
将一些数据上传到 imgur 服务器时我遇到了困难。我能够在我的服务器上看到明显 POST
ed 的数据,但是 imgur api 也响应 no image data was sent to the upload api
。
它与独立的 curl 和 Fiddler 一起工作,但不能从我的服务器手动工作。最后的问题是,我手动创建 POST
headers 并将它们手动写入打开的套接字。因此,我没有发送 Content-Length
header 导致 imgur api 无法读取 POST
body.
注意到这一点后,我手动计算了数据大小并发送了Content-Length
header。这让 imgur api 为我工作。
我正在尝试通过 ajax 将图像上传到 imgur。 我正在使用 base64 编码的图像。 它显示没有数据发送,即使我可以在控制台中看到 base64 数据。
我得到的错误是:-
{"data":{"error":"No image data was sent to the upload api","request":"\/3\/image","method":"POST"},"success":false,"status":400}
应该用空白字符串替换 "data/jpeg" 或 "data/png" ??
我的代码:-
$(document).ready(function(){
function upload_to_imgur(img)
{
// $('body').text(img) ;
var data = new FormData() ;
data.append("image",img) ;
$.ajax({
url: "https://api.imgur.com/3/image",
type: "POST",
headers: {
"Authorization": "Client-ID a867bb291ca25d3" ,
},
dataType:"json" ,
contentType : "multipart/form-data;boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW",
processData:false,
data :data,
success: function(response) {
var photo = response.data.link;
$('body').text(photo) ;
}
});
}
function base64_image(img)
{
var reader = new FileReader() ;
reader.onload = function(e){
base64data = e.target.result ;
upload_to_imgur(base64data) ;
}
reader.readAsDataURL(img)
}
$('#submit_button').click(function(){
upload_to_imgur(document.getElementById('p_img_link1').files[0])
query_string = " \
INSERT INTO `cm_db_mg`.`products` (`p_list_img`, `p_img_link_1`, `p_img_link_2`, `p_title`, `p_c_s_id`, `p_description`, `p_tags`, `p_listPrice`, `p_mrp`, `p_publishStatus`, `p_publishType`, `p_sem`, `p_s_id`, `p_b_id`, `p_c_id`, `p_u_id_seller`, `p_cat_uniq`, `p_not_listed_cmnt`, `p_disclaimer`, `p_condition`, `p_return_allowed`, `created`, `updated`) \
VALUES ('', '', 'te', '', NULL, '', '', '', '-1', '', '', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '', 'First Hand', 'F', '', '');"
}) ;
});
function upl_im(t) {
var file = t.files[0];
var fd = new FormData();
fd.append("image", file);
var xhr = new XMLHttpRequest();
xhr.open("POST", "https://api.imgur.com/3/image.json");
xhr.onload = function() {
var link_src=JSON.parse(xhr.responseText).data.link;
document.getElementById('res').style.backgroundImage = 'url('+link_src+')';
}
xhr.setRequestHeader('Authorization', 'Client-ID a867bb291ca25d3');
xhr.send(fd);
}
基本上我遇到了同样的问题,但是在使用 PHP
将一些数据上传到 imgur 服务器时我遇到了困难。我能够在我的服务器上看到明显 POST
ed 的数据,但是 imgur api 也响应 no image data was sent to the upload api
。
它与独立的 curl 和 Fiddler 一起工作,但不能从我的服务器手动工作。最后的问题是,我手动创建 POST
headers 并将它们手动写入打开的套接字。因此,我没有发送 Content-Length
header 导致 imgur api 无法读取 POST
body.
注意到这一点后,我手动计算了数据大小并发送了Content-Length
header。这让 imgur api 为我工作。