抱歉重复,但我已经尝试了每个问题的每一个建议,甚至模糊地类似于这个到最后。
ajax帖子:
var contactForm = $('#contactForm');
contactForm.on('submit', (event) => {
event.preventDefault()
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN' : $('meta[name="csrf-token"]').attr('content')
}
})
console.log(contactForm.serializeArray())
$.ajax({
dataType: "json",
method : 'POST',
url : 'contact-us/post',
data : contactForm.serializeArray(),
success: (res) => {
console.log(res)
}
})
})
路线处理岗位:
Route::post('contact-us/post', 'EnquiryPostController@store');
PostController商店方法:
public function store(Request $request)
{
return response()->json(['success'=>$request->all()]);
}
response header from network tab
request header from network tab
更新:
只是为了澄清:
事实证明这不是Laravel问题,而是Windows Server / web.config问题。我使用找到的here XML设置了我的网站。经过多次试验和错误后,使用此XML解决了该问题:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<ModSecurity enabled="true" configFile="c:\inetpub\wwwroot\modsecurity.conf" />
<httpErrors errorMode="Detailed" />
<modules runAllManagedModulesForAllRequests="true" />
<defaultDocument>
<files>
<clear />
<add value="index.php" />
</files>
</defaultDocument>
<rewrite>
<rules>
<rule name="CanonicalHostNameRule1">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="^dev\.financialservicesexpo\.co\.uk$" negate="true" />
</conditions>
<action type="Redirect" url="http://dev.financialservicesexpo.co.uk/{R:1}" />
</rule>
<rule name="default" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="/index.php" />
</rule>
</rules>
</rewrite>
<staticContent>
<clientCache cacheControlMaxAge="8.00:00:00" cacheControlMode="UseMaxAge"/>
</staticContent>
</system.webServer>
</configuration>
我希望我能解释为什么这解决了这个问题,但我对服务器配置知之甚少。如果有人想以洞察力发表评论,我至少会发现它很有趣。
如果这个没有帮助,请阅读下面
深入了解这个问题包括尝试在StackOverflow等更多问题中找到许多不同的解决方案,最终在与同事聊天并大声解决问题后两分钟内解决了。令人沮丧的一课我一直需要学习......所以,希望这可以帮助其他人以下是你应该检查的上述解决方案的列表。
如果有人对我在这里写的内容有任何建议或更正,请说出来。我不是专家。
尝试使用type
代替method
之类的ajax请求
$.ajax({
dataType: "json",
type : 'POST',
url : 'contact-us/post',
data : contactForm.serializeArray(),
success: (res) => {
console.log(res)
}
})
您可以使用以下解决方案发送数据:
data : contactForm.serialize()