将base64字符串作为String Javascript发送到服务器

时间:2017-04-30 04:09:39

标签: javascript angularjs

我的AngularJS网页有一个裁剪模块来创建头像,它可以生成头像作为base64字符串,如:

DataURI=
'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEYAAABGCAYAAABxLuKEAAAAu0lEQVR4Xu3UsQ0AMAzDsOb/p/tAMminTxAIz7O1wOiyFxDmkCGMMO00iCGGmFaAmNbLxxBDTCtATOvlY4ghphUgpvXyMcQQ0woQ03r5GGKIaQWIab18DD
    ....
    tF4+hhhiWgFiWi8fQwwxrQAxrZePIYaYVoCY1svHEENMK0BM6+VjiCGmFSCm9fIxxBDTChDTevkYYohpBYhpvXwMMcS0AsS0Xj6GGGJaAWJaLx9DDDGtADGtl485en31GQBH1BvQzgAAAABJRU5ErkJggg==';

问题是我无法将此字符串放入URL并将其发送到服务器 - 尝试执行此操作时出错:

  

XMLHttpRequest无法加载   http://localhost:8180/ChatRestNoSQLMaven/rest/AccountService/updateAvatar/7900b92e-fcfd-4eb4-a39c-c908214c1e7a/data:image/jpeg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAIBAQEBAQIBAQECAgICAgQDAgICAgUEBAMEBgUGBgYFBgYGBwkIBgcJBwYGCAsICQoKCgoKBggLDAsKDAkKCgr/2wBD

     

...   igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP / Z。   No' Access-Control-Allow-Origin'标题出现在请求的上   资源。起源' http://192.168.0.103:8182'因此是不允许的   访问。响应的HTTP状态代码为400。

  

angular.min.js:93 GET   http://localhost:8180/ChatRestNoSQLMaven/rest/AccountService/updateAvatar/7 ... oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP / Z   400()

为Javascript编码它的最佳方法是什么?

我发现了一些不能正常工作的PHP示例,但是在JS中无法解决这些问题。

PHP示例1:

function base64_url_encode($input) {
 return strtr(base64_encode($input), '+/=', '-_,');
}

function base64_url_decode($input) {
 return base64_decode(strtr($input, '-_,', '+/='));
}

PHP示例2:

$str = 'Some String';

$encoded = urlencode( base64_encode( $str ) );
$decoded = base64_decode( urldecode( $encoded ) );

我的网址:

const urlUploadAvatar = "http://" + host + "/ChatRestNoSQLMaven/rest/AccountService/updateAvatar/"+securityKey+"/"+DataURI;

谢谢!

0 个答案:

没有答案