Javascript文件无法对laravel

时间:2016-08-04 17:27:03

标签: ajax laravel

嗨,我希望有人可以帮助我。我的应用程序的根文件夹是cloudapp.azure.com/index.php。 cloudapp.azure.com/是我的公共文件夹。所以我的所有观点都被渲染成我的路线和控制器中的cloudapp.azure.com/index.php/welcome1。这一切都很好。

Route::post('/welcome1a', [
    'uses'=>'UserController@postRegister',
    'as' => 'register',
]);

Route::post('/welcome1', [
    'uses'=>'UserController@postRegister1',
    'as' => 'register1',
]);

public function postRegister1(Request $request){

   $data1 = $request->all();
   $data = JSON.parse($data1);
   return response()->json(['result' => 'data1']);
} 

我面临的问题是我将处理手机缺口,因此我的观点需要以html格式显示。我的HTML文件存储在我的公共文件夹(即cloudapp.azure.com/)中,因此视图将类似于cloudapp.azure.com/register.html。

我正在尝试将我的cloudapp.azure.com/register.html视图中的cloudapp.azure.com/js/script1.js中的数据发送到我的laravel应用程序识别的网址;

 $.ajax({
           url: url,
           type: 'POST',
           data: details,               
           dataType: "json",   
           success: function(result) {

                    console.log('result'); 

           }
        });

但似乎js文件和url没有相互通信。我的文件结构错了吗?当我使用刀片视图来做一个Ajax调用它很好,但我的html文件通过ajax调用url,它不起作用。即使我试图通过以下方式获得旧的laravel视图;

$得到( “cloudapp.azure.com/index.php/welcome1”);它不起作用。

我已经对以下网址进行了ajax调用;

cloudapp.azure.com/index.php/welcome1

的index.php / welcome1

和/ welcome1。

没有错误,只是没有彼此沟通。

如果有人可以提供帮助,您将成为生命的救星

3 个答案:

答案 0 :(得分:1)

public function postRegister1(Request $request){
   $data1 = $request->all();
   $data = json_decode($data1);
   return response()->json(['result' => 'data1']);
} 

JSON.parse是javaScript而不是PHP。

json_decode()是您在PHP中使用的。 http://php.net/manual/en/function.json-decode.php

但你不应该对它进行json_decode,$ request-> all()返回已发布值的数组。

我会说,删除整个json的东西,然后查看你的ajax调用是否返回了返回值。

public function postRegister1(Request $request){
   return response()->json(['result' => 'testing...']);
} 

然后从那里开始......

答案 1 :(得分:1)

您正在PHP中调用JS函数JSON.parse

所以改为

public function postRegister1(Request $request){
    return response()->json([ 'result' => $request->all() ]);
}

或者,如果您只返回一个数组,laravel将自动将其转换为JSON

public function postRegister1(Request $request){
    return [ 'result' => $request->all() ];
}

答案 2 :(得分:0)

您应该尝试删除< base>您的< head>

上的标记