programmer
4 سال پیش توسط programmer مطرح شد
8 پاسخ

استفاده از signalr در ری اکت

سلام وقت بخیر
دوستان من در استفاده از signalr در reactjs این خطا رو دارم
میشه لطفا راهنماییم کنید که علتش چیه ؟ توضیح تصویر رو وارد کنید

در واقع خطای failed to fetch رو میخوام بدونم چرا اتفاق میوفته؟


ثبت پرسش جدید
Parastoo Ebrahimi
تخصص : front-end developer
@parastooebrahimi 4 سال پیش مطرح شد
0

سلام. اگر برای negotiate ریسپانس میگیرید مشکل با همون CORS Policy هست و با نصب یه پلاگین برای کروم که اون رو deactive میکنه درست میشه. ولی اگر قبل از negotiate این اتفاق میفته تنظیماتتون اشتباهه.
اسم پلاگین هست Allow CORS: Access-Control-Allow-Origin


programmer
تخصص : برنامه نویس جاوااسکریپت
@programmer 4 سال پیش مطرح شد
0

سلام
منظورتون از تنظیمات اشتباه چیه ؟ ینی آدرسی که دادم اشتباهه ؟
@parastooebrahimi


Parastoo Ebrahimi
تخصص : front-end developer
@parastooebrahimi 4 سال پیش آپدیت شد
0

من با آموزش سایت مایکروسافت برای @aspnet/signalr-client جلو رفتم و ارور CORS رو گرفتم ولی با استفاده از jquery توی ری اکت signalr اون ارور رو نمیده.

import React, { useEffect } from 'react';
import $ from 'jquery';
window['jQuery'] = window['$'] = $;
require('signalr');
  constructor(props) {
        super(props);
        this.contosoPrintHubProxy = null;
}

بعد توی componentDidMount هاب پروکسی رو دیفاین کردم با این فانکشن :

configureSignalRHub = () => {
 const connection = $.hubConnection(`${window.REACT_APP_CONFIG.REACT_APP_EMC_URL}signalr`, { logging: true, useDefaultPath: false, jsonp: true, })
this.contosoPrintHubProxy = connection.createHubProxy('labelsPrintHub');
this.contosoPrintHubProxy.on("showProgressMessage", (message) => {
            this.setState({ progressMessage: this.state.progressMessage.concat(message) });
        });
 connection.start({ withCredentials: false, transport: ['webSockets'], pingInterval: null })
            .done(function () {
                console.log('connected');
            })
            .fail(function (a) {

                console.log('not connected' + a);
            });
    }

و در نهایت برای فرستادن دیتا اون رو invoke کردم :

 try {
            this.contosoPrintHubProxy.invoke(this.props.batchType === 0 ? "sendPrintBatchJob" : "sendTalkerPrintBatchJob", parseInt(this.props.storeID), query, this.labelDesignsToArray(), this.props.shortName[0].shortName, this.getPrintSettings())
        } catch (error) {
            toastNotification.show(`${error}`, "error")
        }

به جای قسمت داخل invoke باید دیتای خودتون رو بزارید.
به جای labelsPrintHub باید هاب پروکسی خودتون رو بزارید.


Parastoo Ebrahimi
تخصص : front-end developer
@parastooebrahimi 4 سال پیش مطرح شد
programmer
تخصص : برنامه نویس جاوااسکریپت
@programmer 4 سال پیش مطرح شد
0

دستتون درد نکنه خیلی ممنون @parastooebrahimi


programmer
تخصص : برنامه نویس جاوااسکریپت
@programmer 4 سال پیش مطرح شد
0

ببخشید ی سوال دیگه ینی امکان داره خطای cors policy از سمت یو آی باشه ؟ @parastooebrahimi


Parastoo Ebrahimi
تخصص : front-end developer
@parastooebrahimi 4 سال پیش مطرح شد
0

بیشتر مواقع نه از سمت بک اند هست. ولی تا اونجایی که من تحقیق کردم برای پروژه خودم اگر توی ری اکت از جی کوری استفاده نکنی برای سیگنال آر خظای cors بوجود میاد


programmer
تخصص : برنامه نویس جاوااسکریپت
@programmer 4 سال پیش مطرح شد
0

آهان
خیلی ممنون
@parastooebrahimi


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام