jquery Post:请求uri太长时间

Bin*_*gic 1 jquery post

所以这是一个有趣的问题.我发布到一个Web服务,我得到的请求URI太长了.jQuery似乎将我的数据附加到URL:

// this is dynamically generated, and can get very long
var s = 'q=string1&q=string2';

$.ajax({
  type: 'POST',
  url: 'https://www.googleapis.com/language/translate/v2?',
  data: s,
  dataType: 'jsonp'
});
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

data: {data: s}
Run Code Online (Sandbox Code Playgroud)

一样.

棘手的部分是我需要翻译多个项目.Google要求您多次传递'q'变量.不是数组,而是多次相同的参数.这看起来很棒.因此,消除了使用json对象,因为你不能拥有两次相同的密钥.因此我必须传递一个字符串.

知道如何实现这一点并获取请求体中的数据而不是URI吗?

谢谢.

Tgr*_*Tgr 8

没有JSONP POST请求这样的东西.JSONP是关于在src脚本标记的属性中传递参数,并且脚本始终使用GET加载.如果将$.ajax调用的数据类型设置为jsonp,jQuery将忽略该type设置并使用GET(其中URI长度限制适用).使用AJAX发送跨域POST请求是可能的,但相当复杂,需要目标服务器的配合.否则,您需要使用某种代理服务器.