我有一个PHP脚本,可以将PNG图像编码为Base64字符串.
我想用JavaScript做同样的事情.我知道如何打开文件,但我不知道如何进行编码.我不习惯使用二进制数据.
我现在正在调试这个ajax很长一段时间.我在我的jQUery文件中有这个:
$("#typeForm").ajaxForm({
success : function(html){
alert(html);
}).submit();
Run Code Online (Sandbox Code Playgroud)
这会调用service.php,在其中我有这个:
$data = array('upload_data' => $this->upload->data());
$str = "<div style='position:relative'><img src='/assets/ui/success.png' /><span style='position:relative;top:-15px;'>Nachricht empfangen!</span></div>";
echo json_encode(array('file_name' => $data['upload_data']['file_name'], 'prompt' => $str));
Run Code Online (Sandbox Code Playgroud)
这不行.但通过更换$str到$str = "HELLO WORLD";了jQuery提醒我应该怎么期待.什么似乎是问题?
编辑:
这是输出的屏幕:

它会发出警报,但如果我将jQuery修改为:
$("#typeForm").ajaxForm({
success : function(html){
var obj = $.parseJSON(html);
alert(obj);
}).submit();
Run Code Online (Sandbox Code Playgroud)
然后它什么都不做,甚至提醒.
我做了一个var_dump json_encode,这里是转储,它看起来像一个格式错误的JSON:
string(214) "{"file_name":"cde595988d386529909ce5a8fe3a6d6f.png","prompt":"<div style="position:relative;"><img src="\/assets\/ui\/success.png" \=""><span style="position:relative;top:-15px;">Nachricht empfangen!<\/span><\/div>"}"
</span></div>
Run Code Online (Sandbox Code Playgroud)
这是service.php的完整内容
class Service extends CI_Controller
{
public function __construct()
{
parent::__construct();
}
public function index() …Run Code Online (Sandbox Code Playgroud)