【问题标题】:Javascript file not being able to make an Ajax call to laravelJavascript 文件无法对 laravel 进行 Ajax 调用
【发布时间】:2016-08-05 05:09:28
【问题描述】:

您好,我希望有人可以帮助我。我的应用程序的根文件夹是 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 应用程序识别的 url 发送数据;

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

                    console.log('result'); 

           }
        });

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

$.get("cloudapp.azure.com/index.php/welcome1");它不起作用。

我已尝试对以下网址进行 ajax 调用;

cloudapp.azure.com/index.php/welcome1

index.php/welcome1

和 /welcome1。

没有错误,只是没有相互沟通。

如果有人可以帮助您,您将成为救生员

【问题讨论】:

  • 您是否尝试过添加error: 并在控制台记录结果?

标签: ajax laravel


【解决方案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...']);
} 

然后从那里去……

【讨论】:

  • 非常感谢 cmac,你是明星。我的第一个成功的 ajax 调用来自两种技术,JS 和 Laravel 来自你。非常感谢
【解决方案2】:

您正在 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() ];
}

【讨论】:

    【解决方案3】:

    您应该尝试删除

    上的 标签

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-10
      • 1970-01-01
      • 2013-08-25
      • 2019-02-12
      • 1970-01-01
      • 2012-02-18
      相关资源
      最近更新 更多