gpt4 book ai didi

GWT JSONP 带有 Post 而非 Get

转载 作者:行者123 更新时间:2023-12-01 21:28:49 26 4
gpt4 key购买 nike

我有一个格式为 `http://....../methodName

的 Web 服务

它返回一个 jsonp 结果,例如:

methodName(["a":"a", "b":"b"]) 

GWT提供了JsonpRequestBuilder类来解析jsonp。

  JsonpRequestBuilder rb = new JsonpRequestBuilder();

rb.setCallbackParam("callback");

rb.requestObject("http://...../methodName", new AsyncCallback<TestJS>(){
...
});

此结构向 url 发出请求:“http://...../methodName/?callback=__gwt_jsonp_P0.onSuccess”

我的网络服务返回一个带有 methodName 的回调,而不是 __gwt_json......因此 gwt 无法从该响应创建 JavaScriptObject。JsonpRequestBuilder 也适用于 GET 而不是 POST。

如何实现这些:使用 POST 发送请求并修改 GWT 的默认回调名称。

最佳答案

JSONP 不能与 POST 一起使用。顺便说一句,它不是 GWT 限制。

JSONP 本质上包含来自服务器的 JavaScript 文件。因此,当您进行 JSONP 调用时,临时标签会添加到 DOM 中。

现在,一个<script>标签总是可以发出 GET 请求。这是浏览器的事情,GWT 对此无能为力。

如果要进行跨域 POST 调用,则必须从以下选项之一中进行选择(并且它们与 GWT 无关)

  • 使用 Flash 以及允许跨域发布的 crossdomain.xml
  • 使用跨源资源共享 (CORS)。请注意,这仅在现代浏览器中受支持
  • 在您的域中使用代理服务器

关于GWT JSONP 带有 Post 而非 Get,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6815900/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com