You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Laravel项目的jQuery $.get请求中添加指定请求头并解决返回HTML而非JSON的问题

解决jQuery $.get请求返回HTML而非JSON的问题

你遇到的问题是因为服务器没收到Accept: application/json请求头,所以默认返回了HTML格式响应。要添加指定请求头,我们需要把简化的$.get调用换成完整的$.ajax写法($.get是$.ajax的快捷方式,不支持直接配置请求头),具体修改如下:

修改后的完整代码

$('.wilayas').on('change', function(x) {
    alert(this.value)
    $.ajax({
        url: "{{ route('customer.auth.dayras') }}",
        method: 'GET',
        data: { data: this.value },
        headers: { 
            'Accept': 'application/json', 
            'Content-Type': 'application/json' 
        },
        dataType: 'json', // 强制jQuery将响应解析为JSON
        success: function(data, status) {
            alert(data);
            $('.dayras').append(` <option value="-">-</option> `);
            data.map(dd => {
                $('.dayras').append(` <option value="${dd.id}">${dd.dayra}</option> `);
            })
        }
    });
});

关键修改点说明

  • 替换$.get为$.ajax:$.get只支持url、data、回调等基础参数,无法直接设置请求头,而$.ajax提供了完整的配置项,能满足自定义请求头的需求。
  • 添加headers配置:按照你的要求加入Accept和Content-Type请求头,明确告诉服务器我们期望接收JSON格式的响应。
  • 增加dataType: 'json':这是双重保障——即使服务器返回的响应头有小问题,jQuery也会尝试把响应内容解析为JSON,避免出现解析错误导致的后续逻辑失败。

这样修改后,服务器会根据你发送的Accept头返回JSON格式数据,你的回调函数就能正常处理数据啦~

内容的提问来源于stack exchange,提问作者ismail taibi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 21:52:34