ssl 混合内容:位于'domain'的页面已透过HTTPS载入,但要求了不安全的XMLHttpRequest端点

lb3vh1jj  于 2022-11-14  发布在  其他
关注(0)|答案(1)|浏览(140)

我一直在尝试解决一个只在生产中发生的错误。当我尝试create一个新的数据库条目时,抛出了以下错误:
第一个
我使用的是resource controllercreate方法使用inertia的form.postedit方法使用它的form.put(如果相关的话)。
我一直在尝试使用中提供的解决方案对此进行调试:

  1. Mixed content issue- Content must be served as HTTPS
  2. Mixed Content (laravel)
    基本上人们会说:
if (App::environment('production')) {
    URL::forceScheme('https');
}

到您的AppServiceProvider.phpboot()方法。我已经这样做了,但仍然发生错误。我想知道这是否是惯性问题。
在服务器上,我尝试过:

APP_ENV=production
APP_URL=http://localhost
APP_URL=https://localhost
APP_URL=
APP_URL=http://strong-moebel.art
APP_URL=https://strong-moebel.art

但似乎没有什么能解决这个问题。我的网络主机是cloudways,我使用的是他们的Let's Encrypt SSL Certificate。我也试着删除证书,看看会发生什么,但即使这样,还是发生了同样的错误。我对SSL不是很了解,不知道是否有人能帮助我解决这个问题,或者指出一些我可以调查的东西。
我正在使用vite构建生产构建。

更新

通过form.post发送请求的组件:

<template layout="backend/cms-layout">
  <div id="cms-gallery-create" class="cms-gallery-create">
    <form @submit.prevent="storeRecord" method="post" enctype="multipart/form-data">
      <div class="title-btn-bar">
        <h1>Erstelle eine Kreation:</h1>
        <input type="submit" class="btn" value="Kreation speichern">
      </div>
      <p>Titel:</p>
      <input class="textfield-closed title-field" v-model="form.title">
      <p>Titelbild:</p>
      <cms-img-upload v-model:image="form.image"/>
      <p>Hauptteil:</p>
      <cms-custom-editor v-model="form.body"/>
    </form>
    <div v-if="errors.target" class="error">{{ errors.target }}</div>
  </div>
</template>

<script setup>
import CmsImgUpload from '../../components/backend/cms-img-upload.vue'
import CmsCustomEditor from '../../components/backend/cms-custom-editor.vue'
import {useForm} from "@inertiajs/inertia-vue3";

const props = defineProps({
    errors: Object
})

const form = useForm({
    title: '',
    body: '',
    image: '',
})

const storeRecord = () => {
    form.post('/admin/gallerie/')
}

</script>

然后通过x1M13 N1 x将其路由到后端-〉x1M14 N1 x

Route::middleware('auth')->group(function() {
    Route::inertia('/admin/dashboard', 'backend/cms-dashboard');

    Route::post('/admin/gallerie/move', [GalleryController::class, 'moveRow']);
    Route::resource('/admin/gallerie', GalleryController::class);

    Route::post('/admin/verkauf/move', [ShopController::class, 'moveRow']);
    Route::resource('/admin/verkauf', ShopController::class);

    Route::post('/admin/logout', [LoginController::class, 'destroy']);
});

并通过以下方式发送到X1 M15 N1 X:

Route::resource('/admin/gallerie', GalleryController::class);

在控制器内,调用此方法将请求数据存储在数据库内:

public function store(Request $request)
{
    if ($request->image) {
        $image_path = Custom::storeBase64Image($this->STORAGE_PATH, $request);
    } else {
        $image_path = null;
    }

    Gallery::create([
        'title' => $request->title,
        'body' => $request->body,
        'image_path' => $image_path
    ]);

    return redirect($this->BASE_URL);
}

问题似乎发生在前端,因为没有创建logs

t9aqgxwy

t9aqgxwy1#

多亏了@PaulTsai,它现在能用了。我不得不改变:

form.post('/admin/gallerie/')

至:

form.post('/admin/gallerie')

Edit

我刚刚遇到了完全相同的问题,但是使用fetch api,这次是使用paypal。在生产中,我不得不进行更改:

fetch('/api/paypal/order/create/', ...

至:

fetch('/api/paypal/order/create', ...

也许这能帮到某人

相关问题