Jquery 使用AJAX发送跨域base64字符串

Jquery 使用AJAX发送跨域base64字符串,jquery,base64,shopify,Jquery,Base64,Shopify,使用GET方法在ajax请求中发送base64时出错。我只能使用get方法,因为shopify不允许跨域使用任何其他方法 获取 net::ERR_中止414(请求URI太长) 代码如下: $.ajax({ type: "GET", data: { image: JSON.stringify(dataUrl.match(/.{1,3000}/g)) }, crossDomain: true, contentType: 'application

使用GET方法在ajax请求中发送base64时出错。我只能使用get方法,因为shopify不允许跨域使用任何其他方法

获取

net::ERR_中止414(请求URI太长)

代码如下:

$.ajax({
    type: "GET",
    data: {
        image: JSON.stringify(dataUrl.match(/.{1,3000}/g))
    },
    crossDomain: true,
    contentType: 'application/json; charset=utf-8',
    url: "example.com/uploadfile.php",
    dataType: "jsonp",
    jsonpCallback: function(data) {
        console.log(data);
        alert("success");
    }
});
如果这是真的:

  • 您必须跨域执行此操作;及

  • Shopify只允许使用GET(而不是POST)进行跨域ajax请求;及

  • 您的数据太长,因此包含的URI对于您的浏览器、其服务器或某些中介来说太长

  • 那么你唯一的选择就是不要那样做。相反,您可以通过您控制的服务器传递数据,然后使用POST将数据发送到Shopify(因为同源策略是浏览器的事情)。

    您需要使用

    使用应用程序代理,您可以将请求发送到同一个域,而不管它是post还是get


    Shopify将自动将您的请求重定向到您的应用程序端点。

    以下是代码$.ajax({type:“GET”,data:{image:JSON.stringify(dataUrl.match(/.{13000}/g))},crossDomain:true,contentType:'application/json;charset=utf-8',url:,dataType:'jsonp',jsonpCallback:function(data){console.log(data);alert(“success”);};要为问题添加详细信息,请使用问题下的“编辑”链接(评论上方),而不是发表评论。(我已经为你做了。)除非其他域允许,否则你不能使用ajax直接执行跨域请求,只有使用fetch()的不透明请求,或者你可以通过后端传递所有内容-后端可以联系其他域。这回答了你的问题吗?谢谢你的回答,但我如何才能做到这一点,你能指导我吗please@AmanKalra-对于SO的问答形式来说,这个问题太宽泛了。您需要决定托管哪种服务器(您曾经有过PHP,所以可能是PHP?),然后看看如何使用该技术接收文件,如何使用该技术向其他站点发出HTTP请求,等等。