我有一个Micronaut服务,它是使用jQuery中实现的AJAX调用从客户端调用的。Micronaut服务如下所示:
@Controller("/ajaxcaller")
public class AjaxService
{
@Get("/printit")
@Produces(MediaType.TEXT_PLAIN)
public String updateData(Session theSess)
{
System.out.println("Accessing from AJAX.");
return("Successful!");
}
}
调用micronaut服务的Javascript如下:
$.ajax({
url : '/ajaxcaller/printit',
type: "GET",
contentType: 'application/text',
success: function(data, textStatus, jqXHR)
{
alert("Get successful! "+data);
},
error: function (jqXHR, textStatus, errorThrown)
{
alert("Get failed! Error: "+jqXHR.status+", "+errorThrown);
}
});
不幸的是,尽管我告诉服务器和客户机处理纯文本,但AJAX调用失败,出现以下消息:
Get failed! Error: 415, Unsupported Media Type
我是在Micronaut的控制器处理程序中发现了一个bug,还是在客户机或服务器代码中丢失了什么?有什么方法让这个AJAX调用工作吗?
更新:根据James在以下答案1中提供的建议,对代码进行了以下更改,如下所示:
@Controller("/ajaxcaller")
public class AjaxService
{
@Get("/printit")
@Consumes("application/text")
public String updateData(Session theSess)
{
System.out.println("Accessing from AJAX.");
return("Successful!");
}
}
当我尝试使用该服务时,仍然会收到415失败html" target="_blank">消息。
因为我之前已经在Micronaut中创建并成功使用了其他Get服务,所以我使用不同的页面对这一个执行了测试。基本上,我没有使用ajax调用来调用服务,而是在HTML文件中使用了以下一行:
window.location.href = '/ajaxcaller/printit';
调用此命令会生成一个新页面,该页面显示服务返回的字符串(当然,这是预期的行为)。不会生成415错误--即使我删除了@Consumes注释。
显然,Micronaut服务处理AJAX调用与常规页面调用不同。AJAX端是否有我遗漏的设置,或者Micronaut中是否存在阻止成功调用AJAX的bug?
如错误所示,您发送的介质类型不受支持。
@production(Mediatype.text_plain)
告诉Micronaut将生成什么内容类型。您还没有指定关于可以消费的内容类型的任何内容,因此它默认为application/json
。
添加@consumes(“application/text”)
将告诉Micronaut您将要使用的内容类型,这是基于您提供的ajax调用的。
问题内容: 我对phonegap比较陌生,最近我在Windows apache服务器上使用自签名证书设置了HTTPS / SSL,并尝试发出HTTPS ajax发布请求。在浏览器中运行时,该请求工作正常,但在phonegap中运行时失败。我尝试将android:debuggable设置为false,但这不能解决问题。我也做了一些研究,似乎phonegap确实支持HTTPS ajax请求,所以我对请
服务调用失败 KernalEvent::SERVICE_FAIL事件 在框架层,调用servcie时,会抛出KernalEvent::SERVICE_FAIL事件,你可以监听该事件,做数据上报处理,请以异步方式上报 配置config/lister.php中的事件监听器 示例 <?php namespace src\Web\Listeners; class ServiceFailListener e
问题内容: 好的,所以我创建了一个测试项目,只是为了验证jQuery AJAX是否可以与asp.net服务一起使用,并且没有问题。我使用了在VS Studio中创建的默认HelloWorld服务。我通过jQuery这样调用服务: 在Default.aspx中: 在TestService.asmx中 然后,我继续进行操作,并完全复制了项目中的所有内容,但它不起作用。我收到500个服务器错误。 我验证
本文向大家介绍jQuery ajax调用WCF服务实例,包括了jQuery ajax调用WCF服务实例的使用技巧和注意事项,需要的朋友参考一下 恩,在由瘦客户端转换成胖浏览器端的“潮流”下,必然要使用JavaScript调用后台的各种服务。 屌丝所维护的产品通信都是使用的WCF服务,因此必然要学习这样的内容。借用jQuery强大的库,使用JavaScript访问WCF服务非常简便。同事研究了一个b
问题内容: 我要尝试做的就是从服务器中搜索文件并显示图片。HTML有一个简单的搜索栏,您可以输入搜索词。JavaScript使用ajax请求来调用PHP文件,然后PHP在服务器上找到图像并将其发送回以显示。 现在发生的是该图像没有显示,并且我得到一个图标,指示一些无效的图像。Ajax调用似乎正在运行,但是我认为我发回的数据不正确。我一直在尝试搜索它,但是每个人似乎对如何执行它都有不同的看法,这有点
我正在使用Vagrant部署到Ubuntu Linux,并尝试启动服务。 然后我跟踪,发现: ?tomcat8.service-lsb:启动tomcat。加载:加载(/etc/init.d/tomcat8) active:失败(结果:exit-code)自2016-03-28 09:44:17 GMT;5s前 文档:人:systemd-sysv-generator(8) 进程:884 execst